/*
*********************************************************************************************************
*	                                  
*	模块名称 : 外置XBF格式字库到SPI FLASH
*	文件名称 : MainTask.c
*	版    本 : V1.0
*	说    明 : 支持点阵：
*                1. 宋体16点阵，24点阵，32点阵的unicode编码完整字体。
*              字库存储方式：
*                1. 字库存储到SPI FLASH里面。
*              实验步骤如下：
*                1. 将字库文件font.bin放到SD卡根目录中，系统上电后会将其加载到SPI FLASH里面。
*                2. 板子上电后会有一个加载进度指示，存储到SPI FLASH成功后会显示一个对话框。
*                3. 字体文件为7.28MB，SPI FLASH为8MB，加载过程稍有些慢，请耐心等待。
*              
*	修改记录 :
*		版本号   日期         作者          说明
*		V1.0    2016-07-16   Eric2013  	    首版    
*                                     
*	Copyright (C), 2015-2020, 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/
#include "MainTask.h"
#include "includes.h"
#include "Logo-Cell.c"

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "demo_fatfs.h"
#include "DROPDOWN.h"

extern QueueHandle_t xQueue1;
extern QueueHandle_t xQueue2;

//uint8_t mode_flag=0;

extern uint8_t max_pro_num;
extern char cfgname[8][16];
extern CONFIG_PARA cfg_para;
extern struct _CONFIG_DATA cfg_data_tmp;
extern struct _CONFIG_CHANNEL_ cfg_ch_tmp;

char proname[16][16];
uint8_t  project_number = 0;
int8_t picture_num = 0;
uint8_t  channel_num = 0;
uint8_t  read_flag = 0;
uint8_t  file_flag = 0;
char file_name[22]={0};
CONFIG_PIC  picArray;
char change_pic = 0;
char change_ch = 0;
char change_data = 0;
char pic_play = 0;

int8_t rows = 0;

#define ID_Timer1   0
#define LEN_ITEM_TEXT 15

typedef struct {
  char *   pText;
  int      Width;
  int      Align;
  int    (*fpCompare)(const void * p0, const void * p1);
} COL_PROP;

typedef struct {
  U32 Row;
  U32 Col;
} CELL_EDIT_ORG;


/*
*********************************************************************************************************
*	                                  调用外部字体
*********************************************************************************************************
*/
extern GUI_CONST_STORAGE GUI_FONT GUI_Fontyahei36;
extern GUI_CONST_STORAGE GUI_FONT GUI_Fontxingshu48;
extern GUI_CONST_STORAGE GUI_FONT GUI_Fontbrush48;
extern GUI_CONST_STORAGE GUI_FONT GUI_Fontyahei30;
extern GUI_CONST_STORAGE GUI_FONT GUI_Fontsong16;
extern GUI_CONST_STORAGE GUI_FONT GUI_Fontkai24;

/*
*********************************************************************************************************
*	                                  定义XBF格式字体
*********************************************************************************************************
*/
/* 宋体20点阵定义 */
#define   XBF_Font20BaseAdd    0x00000000
GUI_XBF_DATA XBF_Data20;
GUI_FONT     XBF_Font20;
void         *Fontfile20;

/* 宋体24点阵定义 */
#define   XBF_Font24BaseAdd    0x0021D282
GUI_XBF_DATA XBF_Data24;
GUI_FONT     XBF_Font24;
void         *Fontfile24;

/* 宋体32点阵定义 */
#define   XBF_Font32BaseAdd    0x004A5ECC
GUI_XBF_DATA XBF_Data32;
GUI_FONT     XBF_Font32;
void         *Fontfile32;

static uint8_t File_Init(void)
{ 
	usbh_OpenMassStorage();

	result = f_mount(&fs_usb, "2:", 0);
	if (result != FR_OK)
	{
		return 0;
	}
	
	result = f_opendir(&DirInf_usb, "2:/"); 
	if (result != FR_OK)
	{
		printf("open USB dir error!\r\n");
		return 0;
	}
	else
	{
		f_mount(NULL,"2:", 0);
		return 1;
	}
}

/*
*********************************************************************************************************
*	函 数 名: _cbGetData16
*	功能说明: XBF字体的回调函数, 16点阵
*	形    参: Off      - 地址偏移 
*             NumBytes - 需要读出的字节数
*             pVoid    - 指针变量，一般用于带文件系统时的FIL类型变量
*             pBuffer  - 获取字体的点阵数据
*	返 回 值: 0 表示成功 1 表示失败
*********************************************************************************************************
*/
static int _cbGetData20(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer)
{	
	/* 读取点阵数据 */
	sf_ReadBuffer(pBuffer, XBF_Font20BaseAdd + Off, NumBytes);
	return 0;
}

/*
*********************************************************************************************************
*	函 数 名: _cbGetData24
*	功能说明: XBF字体的回调函数, 24点阵
*	形    参: Off      - 地址偏移 
*             NumBytes - 需要读出的字节数
*             pVoid    - 指针变量，一般用于带文件系统时的FIL类型变量
*             pBuffer  - 获取字体的点阵数据
*	返 回 值: 0 表示成功 1 表示失败
*********************************************************************************************************
*/
static int _cbGetData24(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer)
{	
	/* 读取点阵数据 */
	sf_ReadBuffer(pBuffer, XBF_Font24BaseAdd + Off, NumBytes);
	return 0;
}

/*
*********************************************************************************************************
*	函 数 名: _cbGetData32
*	功能说明: XBF字体的回调函数, 32点阵
*	形    参: Off      - 地址偏移 
*             NumBytes - 需要读出的字节数
*             pVoid    - 指针变量，一般用于带文件系统时的FIL类型变量
*             pBuffer  - 获取字体的点阵数据
*	返 回 值: 0 表示成功 1 表示失败
*********************************************************************************************************
*/
static int _cbGetData32(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer)
{	
	/* 读取点阵数据 */
	sf_ReadBuffer(pBuffer, XBF_Font32BaseAdd + Off, NumBytes);
	return 0;
}

/*
*********************************************************************************************************
*	函 数 名: GUI_SetXBF
*	功能说明: 创建XBF字体
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
static void GUI_SetXBF(void) 
{

	/* 创建20点阵字体 */
	GUI_XBF_CreateFont(&XBF_Font20,        /* GUI_FONT类型变量     */
					 &XBF_Data20,          /* GUI_XBF_DATA类型变量 */
					 GUI_XBF_TYPE_PROP,    /* 字体类型             */
					 _cbGetData20,         /* 回调函数             */
					 &Fontfile20);         /* 回调函数参数         */
	
	/* 创建24点阵字体 */
	GUI_XBF_CreateFont(&XBF_Font24,        /* GUI_FONT类型变量     */
					 &XBF_Data24,          /* GUI_XBF_DATA类型变量 */
					 GUI_XBF_TYPE_PROP,    /* 字体类型             */
					 _cbGetData24,         /* 回调函数             */
					 &Fontfile24);         /* 回调函数参数         */
	
	/* 创建32点阵字体 */
	GUI_XBF_CreateFont(&XBF_Font32,        /* GUI_FONT类型变量     */
					 &XBF_Data32,          /* GUI_XBF_DATA类型变量 */
					 GUI_XBF_TYPE_PROP,    /* 字体类型             */
					 _cbGetData32,         /* 回调函数             */
					 &Fontfile32);         /* 回调函数参数         */
}

/*
*********************************************************************************************************
*	函 数 名: LoadFontLib()
*	功能说明: 从SD卡中加载字库文件到SPI FLASH
*	形    参: 无   	
*	返 回 值: 无
*********************************************************************************************************
*/
void LoadFontLib(void)
{
//	float FinishPecent;
//    uint32_t Count = 0;
//	uint16_t y, i;
//	uint8_t ucState;
//	char cDispBuf[32];
//	FIL file;
//	FRESULT result;
//	UINT bw;

//	
//	/* 清屏 */
//	GUI_SetBkColor(GUI_BLUE);
//	GUI_Clear();
//	
//	/* 设置字体 */
//	GUI_SetFont(&GUI_FontSong16);

//    y = 0;
//	/* 第1步：显示操作说明 ***************************************************************/
//	GUI_DispStringAt("SPI FLASH中存储字库实验", 0, y);
//	y += 16;
//	
//	GUI_DispStringAt("1. 使用前保证SD卡中已经放入字库文件font.bin", 0, y);
//	y += 16;
//	
//	GUI_DispStringAt("2. SD卡中不放入字库文件，无法将其复制到板载SPI FLASH中", 0, y);
//	y += 16;
//	
//	/* 等待10s后开始进行复制，方便客户看屏幕上的显示信息 */
//	for(i = 0; i < 11; i++)
//	{
//		sprintf(cDispBuf, "3. 10秒后开始复制, 还剩余%d秒 ", 10 - i);
//		GUI_DispStringAt(cDispBuf, 0, y);
//		GUI_Delay(1000);
//	}
//	y += 16;
//	
//	
//	/* 第2步：打开文件 ***************************************************************/
//	result = f_open(&file, "font.bin", FA_OPEN_EXISTING | FA_READ);
//	if (result !=  FR_OK)
//	{
//		GUI_DispStringAt("font.bin文件打开失败", 0, y);
//		y += 16;
//	}

//	/* 第3步：复制SD卡中字库文件font.bin到SPI FLASH **********************************/
//	for(;;)
//	{
//		/* 读取一个扇区的数据到buf */
//		result = f_read(&file, &tempbuf, g_tSF.PageSize, &bw);
//		
//		/* 读取出错或者读取完毕，退出 */
//		if ((result != FR_OK)||bw == 0)
//		{
//			break;
//		}
//		
//		/* 写数据到SPI FLASH */
//		ucState = sf_WriteBuffer(tempbuf, Count*g_tSF.PageSize, g_tSF.PageSize);
//		
//		/* 如果返回0，表示复制失败 */
//		if(ucState == 0)
//		{
//			GUI_DispStringAt("复制失败                  ", 0, y);
//			break;
//		}
//		
//		/* 显示复制进度 */
//		Count = Count + 1;
//		FinishPecent = (float)(Count* g_tSF.PageSize) / file.fsize;
//		sprintf(cDispBuf, "当前完成复制:%02d%%", (uint8_t)(FinishPecent*100));
//		GUI_DispStringAt(cDispBuf, 0, y);
//	}
//	
//	/* 等待1秒后开始进去emWin主界面  */
//	GUI_Delay(1000);
}

static GUI_CONST_STORAGE unsigned char _acLogo[] = {
  0xFF,0x83,0xF0, 0xFF,0x73,0xAE, 0xFF,0xBD,0xF7, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xC6,0x38, 0xFF,0x94,0x92, 0xFF,0x63,0x2D, 0xFF,0x9C,0xD3, 0xFF,0x8C,0x51, 0xD3,0x7B,0xCF, 
        0x84,0x73,0x8E, 0x62,0x52,0xAB, 0x46,0x5A,0xCB, 0x33,0x5A,0xEC, 0x4E,0x5A,0xCB, 0x5C,0x5A,0xAB, 0xB9,0x7B,0xEF, 0xFF,0x84,0x10, 0xFF,0x7B,0xEF, 0xFF,0x7B,0xEF, 0xFF,0x7B,0xEF, 0xFF,0x8C,0x51, 0xFF,0x94,0x92, 0xFF,0x8C,0x72, 0xFF,0x8C,0x72, 
        0xFF,0x94,0x92, 0xDF,0x5A,0xEC, 0xE3,0x7C,0x10, 0xFF,0xCE,0x9A, 0xFF,0xC6,0x18, 0xFF,0xE7,0x1C, 0xFF,0x7B,0xF0, 0xFF,0x21,0x05, 0xFF,0x39,0xE8, 0xFF,0x39,0xE8, 0xFF,0x39,0xE8, 0xFF,0x21,0x26, 0xFF,0x63,0x2D, 0xFF,0xDE,0xDB, 0xFF,0xC6,0x38, 
        0xFF,0xD6,0xBA, 0xFF,0x6B,0x4D, 0xFF,0x00,0x02, 0xFF,0x21,0x05, 0xFF,0x21,0x05, 0xFF,0x21,0x05, 0xFF,0x10,0x83, 0xFF,0x39,0xC8, 0xFF,0x94,0x92, 0xC9,0x84,0x31, 0xBC,0x7C,0x10, 0xFF,0x84,0x51, 0xFF,0x4A,0x6B, 0xFF,0x08,0x63, 0xFF,0x21,0x05, 
        0xFF,0x21,0x05, 0xFF,0x21,0x05, 0xFF,0x00,0x02, 0xFF,0x5A,0xCC, 0xFF,0xEF,0x5C, 0xFF,0x8C,0x51, 0xFF,0x63,0x2D, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 
        0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x6B,0x8E, 0xFF,0x63,0x2D, 0xFF,0x84,0x51, 0xFF,0xCE,0x79, 0xFF,0xC6,0x18, 0xFF,0xC6,0x38, 0xFF,0xC6,0x38, 0xFF,0xD6,0xBA, 0xD8,0x8C,0x51, 0xE5,0x7C,0x10, 0xFF,0xA5,0x34, 0xFF,0xCE,0x7A, 
        0xFF,0xCE,0x9A, 0xB0,0x6B,0x8E, 0xCD,0xB5,0xB6, 0xFF,0xC6,0x38, 0xFF,0x39,0xE8, 0xFF,0x29,0x46, 0xFF,0x4A,0x6A, 0xFF,0x6B,0x6E, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x83,0xF0, 0xFF,0x73,0xAE, 0xFF,0xBD,0xF7, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xC6,0x18, 0xFF,0x94,0xB2, 0xFF,0x6B,0x6D, 0xC8,0x7B,0xEF, 0x2E,0x4A,0x29, 0x00,0x31,0x87, 
        0x00,0x21,0x25, 0x00,0x29,0x66, 0x00,0x29,0x25, 0x00,0x21,0x25, 0x00,0x29,0x45, 0x00,0x21,0x04, 0x62,0x42,0x08, 0xFF,0x73,0xAE, 0xFF,0x6B,0x2D, 0xFF,0x6B,0x2D, 0xFF,0x6B,0x6D, 0xFF,0x52,0xAB, 0xFF,0x42,0x09, 0xFF,0x42,0x29, 0xFF,0x52,0xAC, 
        0xFF,0x73,0x8E, 0x32,0x18,0xE5, 0x48,0x4A,0x6A, 0xFF,0xBE,0x18, 0xFF,0xAD,0x96, 0xFF,0xEF,0x5D, 0xEB,0x7B,0xF0, 0xBF,0x18,0xC4, 0xB7,0x29,0x67, 0xBB,0x29,0x46, 0xB6,0x29,0x66, 0xBB,0x18,0xE5, 0xE5,0x63,0x2D, 0xFF,0xDE,0xDB, 0xFF,0xC6,0x38, 
        0xFF,0xD6,0xBA, 0xFF,0x6B,0x4D, 0xFF,0x00,0x02, 0xFF,0x21,0x05, 0xFF,0x21,0x05, 0xFF,0x21,0x05, 0xFF,0x18,0xE5, 0xFF,0x18,0xC4, 0xFF,0x6B,0x6E, 0x45,0x4A,0x8B, 0x19,0x00,0x00, 0xFF,0x00,0x00, 0xFF,0x18,0xC5, 0xFF,0x21,0x26, 0xFF,0x21,0x05, 
        0xFF,0x21,0x05, 0xFF,0x21,0x05, 0xFF,0x08,0x63, 0xFF,0x4A,0x4A, 0xFF,0xCE,0x59, 0x8E,0x63,0x0D, 0x33,0x19,0x05, 0x2E,0x21,0x26, 0x36,0x29,0x46, 0x34,0x29,0x46, 0x3A,0x21,0x26, 0x43,0x29,0x87, 0x36,0x29,0x66, 0x35,0x21,0x26, 0x36,0x29,0x46, 
        0x36,0x29,0x46, 0x36,0x29,0x46, 0x36,0x29,0x46, 0x2E,0x21,0x26, 0x33,0x19,0x05, 0x8D,0x5A,0xEC, 0xFF,0xB5,0xD7, 0xFF,0xAD,0x76, 0xFF,0xB5,0xB6, 0xFF,0xBE,0x18, 0xFF,0xBD,0xD7, 0x03,0x18,0xC4, 0x8C,0x4A,0x6A, 0xFF,0x9C,0xF3, 0xFF,0xD6,0xBA, 
        0x9B,0x73,0xAF, 0x00,0x00,0x22, 0xBB,0x52,0xAB, 0xFF,0x42,0x29, 0xF6,0x31,0xA7, 0xFF,0x31,0xA8, 0xFE,0x52,0x8B, 0xFF,0x6B,0x6E, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x7B,0xF0, 0xFF,0x73,0xAE, 0xFF,0xC6,0x38, 0xFF,0xBD,0xF7, 0xFF,0xBD,0xD7, 0xFF,0xBD,0xD7, 0xFF,0xBD,0xD7, 0xFF,0xBD,0xD7, 0xFF,0xBD,0xD7, 0xFF,0xCE,0x59, 0xFF,0xA5,0x35, 0x96,0x4A,0x49, 0x00,0x29,0x66, 0x00,0x29,0x66, 0x00,0x39,0xC7, 
        0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x31,0x86, 0x66,0x52,0x8A, 0xFF,0x73,0x8E, 0xFF,0x6B,0x4D, 0xFF,0x73,0x8E, 0xFF,0x6B,0x4D, 0xFF,0x39,0xC9, 0xFF,0x31,0xA8, 0xFF,0x31,0xA8, 0xFF,0x31,0xA8, 
        0xFF,0x63,0x2D, 0x35,0x18,0xE5, 0x4E,0x5A,0xEC, 0xFF,0xA5,0x35, 0xFF,0x42,0x29, 0xFF,0xDE,0xFB, 0x7E,0x73,0xAF, 0x00,0x00,0x00, 0x04,0x18,0xE5, 0x00,0x18,0xE5, 0x03,0x21,0x25, 0x00,0x00,0x22, 0x44,0x4A,0x6A, 0xFF,0xDF,0x1B, 0xFF,0xC6,0x18, 
        0xFF,0xD6,0x9A, 0xAE,0x63,0x2D, 0x48,0x00,0x01, 0x65,0x18,0xE5, 0x65,0x18,0xE5, 0x65,0x18,0xE5, 0x65,0x18,0xE5, 0x66,0x10,0xA4, 0x76,0x18,0xC4, 0x1B,0x21,0x26, 0x0E,0x08,0x42, 0x72,0x18,0xC4, 0x66,0x18,0xE5, 0x65,0x18,0xE5, 0x65,0x18,0xE5, 
        0x65,0x18,0xE5, 0x65,0x18,0xE5, 0x4B,0x10,0x84, 0xA4,0x29,0x46, 0xFF,0x9D,0x14, 0x2D,0x31,0xA8, 0x00,0x08,0x63, 0x49,0x4A,0x4A, 0x3D,0x31,0x87, 0x3D,0x21,0x26, 0x53,0x42,0x4A, 0x40,0x29,0x87, 0x3B,0x29,0x46, 0x41,0x39,0xE9, 0x40,0x39,0xC8, 
        0x40,0x39,0xC8, 0x40,0x39,0xE8, 0x40,0x31,0xA7, 0x49,0x3A,0x09, 0x00,0x08,0x83, 0x2A,0x29,0x46, 0xFF,0xA5,0x55, 0xFF,0x9C,0xD3, 0xFF,0x8C,0x72, 0xFF,0x9D,0x14, 0xAE,0x6B,0x4E, 0x00,0x00,0x22, 0xE4,0xAD,0x76, 0xFF,0xF7,0xDF, 0xC0,0x8C,0x92, 
        0x00,0x00,0x00, 0x06,0x18,0xC4, 0x29,0x21,0x05, 0x12,0x08,0x42, 0x36,0x21,0x05, 0x00,0x18,0xC4, 0x55,0x31,0x87, 0xFF,0x52,0xCC, 0xFF,0x4A,0x6A, 0xFF,0x4A,0x8A, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x83,0xF0, 0xFF,0x73,0xAE, 0xFF,0xB5,0xB7, 0xFF,0xAD,0x55, 0xFF,0xAD,0x55, 0xFF,0xAD,0x55, 0xFF,0xAD,0x55, 0xFF,0xAD,0x55, 0xFF,0xAD,0x55, 0xFF,0xC6,0x18, 0xA9,0x84,0x10, 0x00,0x21,0x05, 0x00,0x31,0xA7, 0x00,0x39,0xE8, 0x00,0x39,0xC8, 
        0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x31,0x86, 0x66,0x52,0x8A, 0xFF,0x73,0xAE, 0xFF,0x6B,0x4D, 0xFF,0x73,0x8E, 0xFF,0x4A,0x6A, 0xFF,0x31,0x88, 0xFF,0x39,0xE9, 0xF5,0x39,0xE9, 0xCB,0x31,0x87, 
        0xDB,0x31,0xA8, 0x26,0x21,0x05, 0x38,0x39,0xE9, 0xE4,0x42,0x09, 0xD3,0x00,0x01, 0xFF,0x9D,0x14, 0x5B,0x7B,0xF0, 0x24,0x00,0x01, 0xFF,0xA5,0x55, 0xE8,0xEF,0x9E, 0xFF,0xC6,0x59, 0x54,0x00,0x01, 0x17,0x39,0xE9, 0xFF,0xE7,0x1C, 0xFF,0xBE,0x18, 
        0xFF,0xD6,0xBA, 0x8B,0x5A,0xED, 0x00,0x00,0x00, 0x25,0x08,0x63, 0x25,0x08,0x63, 0x25,0x08,0x63, 0x25,0x08,0x63, 0x25,0x08,0x63, 0x2B,0x08,0x43, 0x0A,0x10,0x83, 0x05,0x21,0x26, 0x2A,0x10,0xC4, 0x26,0x00,0x42, 0x25,0x08,0x63, 0x25,0x08,0x63, 
        0x25,0x08,0x63, 0x25,0x08,0x63, 0x01,0x00,0x22, 0x7A,0x21,0x05, 0xFF,0x9D,0x14, 0x14,0x42,0x29, 0x75,0x21,0x25, 0xFF,0x7C,0x10, 0xFF,0x94,0xB3, 0xFF,0xD6,0xBA, 0xB5,0x84,0x51, 0x6B,0x29,0x66, 0xFF,0x8C,0x72, 0xFF,0x9C,0xD3, 0xFF,0x94,0xB3, 
        0xFF,0x94,0xB3, 0xFF,0x94,0x92, 0xFF,0x9D,0x14, 0xFF,0x8C,0x92, 0x76,0x21,0x05, 0x11,0x31,0x87, 0xFF,0xAD,0x76, 0xFF,0xA5,0x14, 0xFF,0x9C,0xF4, 0xFF,0xB5,0xD7, 0x3D,0x29,0x67, 0x39,0x29,0x67, 0xFF,0xD6,0xBA, 0xCF,0x94,0xB3, 0x00,0x08,0x63, 
        0x8B,0x21,0x26, 0xFF,0x42,0x29, 0xD9,0x31,0xA7, 0xF7,0x5B,0x0D, 0x77,0x52,0x8B, 0x00,0x00,0x22, 0xBA,0x29,0x87, 0xFF,0x39,0xC8, 0xFF,0x31,0xA7, 0xFF,0x4A,0x6A, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x84,0x10, 0xFF,0x6B,0x4D, 0xFF,0xAD,0x55, 0xFF,0xA5,0x34, 0xFF,0xA5,0x14, 0xFF,0xA5,0x14, 0xFF,0xA5,0x14, 0xFF,0xA5,0x14, 0xFF,0xAD,0x55, 0xFB,0x9C,0xF3, 0x20,0x39,0xC7, 0x00,0x31,0x86, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 
        0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x31,0x86, 0x66,0x52,0x8A, 0xFF,0x73,0xAE, 0xFF,0x6B,0x6D, 0xFF,0x73,0x8E, 0xFF,0x29,0x67, 0xFF,0x10,0x83, 0xFF,0x18,0xE5, 0xC5,0x18,0xC4, 0x00,0x18,0xE5, 
        0x00,0x29,0x67, 0x00,0x18,0xC4, 0x00,0x08,0x83, 0x00,0x10,0xA4, 0x11,0x00,0x00, 0xFF,0x84,0x31, 0x66,0x84,0x31, 0x30,0x00,0x01, 0xFF,0x7C,0x10, 0xFF,0xE7,0x3C, 0xFF,0x5A,0xCC, 0x61,0x00,0x00, 0x15,0x4A,0x6B, 0xFF,0xDF,0x1B, 0xFF,0xC6,0x59, 
        0xFF,0xD6,0xDB, 0xFF,0x5B,0x0C, 0xFF,0x21,0x26, 0xFF,0x42,0x4A, 0xFF,0x31,0xC8, 0xFF,0x39,0xE8, 0xFF,0x39,0xE8, 0xFF,0x31,0x87, 0xFF,0x5A,0xED, 0x4B,0x4A,0x4A, 0x1F,0x08,0x63, 0xFF,0x39,0xC8, 0xFF,0x39,0xE8, 0xFF,0x39,0xE8, 0xFF,0x39,0xE8, 
        0xFF,0x39,0xE8, 0xFF,0x39,0xE9, 0xFF,0x18,0xE5, 0xFF,0x31,0xC8, 0xFF,0xB5,0xB6, 0x11,0x42,0x29, 0x71,0x00,0x22, 0xFF,0x39,0xE8, 0xFF,0xC6,0x59, 0xE0,0xBD,0xF8, 0x06,0x08,0x62, 0x00,0x08,0x42, 0x47,0x42,0x2A, 0x45,0x31,0x87, 0x3D,0x31,0x87, 
        0x54,0x31,0x87, 0x51,0x29,0x46, 0x78,0x63,0x2D, 0xFF,0x9C,0xF4, 0x77,0x00,0x22, 0x10,0x39,0xC8, 0xFF,0xAD,0x55, 0xFF,0xA5,0x35, 0xFF,0xBD,0xF8, 0xE8,0xA5,0x14, 0x02,0x10,0x83, 0xC5,0x7B,0xD0, 0xD4,0x6B,0x4E, 0x00,0x00,0x01, 0x39,0x10,0x83, 
        0xDE,0x29,0x67, 0xD2,0x21,0x05, 0xDD,0x18,0xC4, 0xD9,0x5A,0xCC, 0x02,0x29,0x66, 0x4E,0x10,0x83, 0xD8,0x21,0x05, 0xAB,0x18,0xC4, 0xD3,0x31,0xA7, 0xFF,0x4A,0x6A, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x8C,0x51, 0xFF,0x5A,0xCB, 0xFF,0x8C,0x71, 0xFF,0xC6,0x18, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xD6,0x9A, 0x9B,0x84,0x10, 0x00,0x20,0xE4, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 
        0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x31,0x86, 0x66,0x52,0x8A, 0xFF,0x73,0xAE, 0xFF,0x6B,0x6D, 0xFF,0x73,0xAE, 0xFF,0x29,0x67, 0xFF,0x08,0x63, 0xFF,0x18,0xC4, 0xB3,0x10,0x84, 0x04,0x10,0xA4, 
        0xEE,0x7B,0xF0, 0x3E,0x31,0x87, 0x42,0x4A,0x4A, 0xB8,0xA5,0x55, 0x12,0x00,0x00, 0xFF,0x7B,0xF0, 0x66,0x84,0x51, 0x2D,0x00,0x00, 0xFF,0x94,0x92, 0xFF,0xB5,0xB7, 0xFF,0x00,0x00, 0x60,0x00,0x00, 0x15,0x52,0x8B, 0xFF,0xDE,0xFB, 0xFF,0xCE,0x79, 
        0xFF,0xBD,0xF7, 0xFF,0xAD,0x76, 0xF4,0xB5,0xB7, 0x78,0x4A,0x6A, 0x6A,0x31,0xC8, 0x74,0x42,0x09, 0x74,0x42,0x09, 0x75,0x3A,0x09, 0x85,0x4A,0x6B, 0x1A,0x21,0x26, 0x0A,0x10,0x83, 0x80,0x42,0x09, 0x76,0x42,0x29, 0x74,0x42,0x09, 0x74,0x42,0x09, 
        0x71,0x42,0x29, 0x66,0x42,0x09, 0xDC,0x10,0x83, 0xFF,0x5A,0xEC, 0xFF,0xCE,0x7A, 0x11,0x39,0xE8, 0x71,0x00,0x02, 0xFF,0x73,0x8F, 0xD5,0x9C,0xF4, 0x00,0x00,0x00, 0x2E,0x29,0x46, 0xC5,0x6B,0x6E, 0x78,0x31,0xA7, 0x6B,0x31,0xA7, 0x9F,0x4A,0x4A, 
        0x70,0x4A,0x6A, 0x00,0x00,0x00, 0x51,0x5A,0xEC, 0xFF,0xBE,0x18, 0x76,0x08,0x42, 0x10,0x31,0xC8, 0xFF,0xB5,0xD7, 0xFF,0x7B,0xF0, 0xFF,0x63,0x2D, 0x72,0x39,0xC8, 0x17,0x29,0x46, 0xFB,0xA5,0x35, 0x2A,0x21,0x05, 0x00,0x08,0x63, 0x22,0x21,0x26, 
        0x39,0x4A,0x4A, 0x25,0x4A,0x4A, 0x33,0x42,0x29, 0x05,0x08,0x42, 0x14,0x21,0x25, 0x49,0x52,0xCC, 0x2E,0x4A,0x4A, 0x03,0x29,0x67, 0x1A,0x18,0xC5, 0xFC,0x31,0xA8, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x8C,0x51, 0xFF,0x63,0x0C, 0xFF,0x5A,0xAB, 0xFF,0x9C,0xF3, 0xFF,0xAD,0x75, 0xFF,0xA5,0x34, 0xFF,0xA5,0x34, 0xFF,0xAD,0x55, 0xFF,0xAD,0x76, 0x3A,0x4A,0x49, 0x00,0x29,0x45, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 
        0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC8, 0x00,0x31,0xA7, 0x00,0x29,0x45, 0x65,0x52,0x6A, 0xFF,0x73,0x8E, 0xFF,0x6B,0x4D, 0xFF,0x73,0x8E, 0xFF,0x31,0x87, 0xFF,0x10,0x83, 0xFF,0x18,0xE5, 0xB0,0x18,0xE5, 0x09,0x00,0x22, 
        0xFF,0x42,0x2A, 0x48,0x29,0x66, 0x5B,0x5A,0xEC, 0xF6,0xC6,0x59, 0x18,0x00,0x00, 0xFF,0x7B,0xD0, 0x6A,0x7B,0xF0, 0x2C,0x18,0xE5, 0xCB,0x84,0x31, 0xE5,0xCE,0x59, 0xFF,0x39,0xE8, 0x60,0x00,0x00, 0x14,0x4A,0x8B, 0xFF,0xDE,0xFB, 0xFF,0xCE,0x79, 
        0xFF,0xB5,0x96, 0xFF,0xBD,0xF8, 0xEC,0xA5,0x14, 0x37,0x18,0xC4, 0x27,0x18,0xE5, 0x34,0x21,0x26, 0x34,0x21,0x26, 0x34,0x21,0x26, 0x2E,0x21,0x05, 0x52,0x21,0x26, 0x56,0x29,0x67, 0x2F,0x21,0x26, 0x33,0x21,0x26, 0x34,0x21,0x26, 0x34,0x21,0x26, 
        0x30,0x29,0x46, 0x1E,0x18,0xC4, 0xCB,0x00,0x00, 0xFF,0x52,0xAB, 0xFF,0xD6,0x9A, 0x12,0x29,0x67, 0x8F,0x39,0xE8, 0xCF,0x73,0x8E, 0x00,0x08,0x42, 0x64,0x42,0x4A, 0x45,0x42,0x4A, 0x97,0x4A,0x4A, 0xFF,0x6B,0x6E, 0xFF,0x84,0x31, 0xF9,0x5A,0xCC, 
        0x21,0x29,0x46, 0x45,0x31,0x87, 0xFF,0xA5,0x55, 0xFF,0x6B,0x6E, 0x72,0x00,0x22, 0x10,0x39,0xC8, 0xFF,0xB5,0x96, 0xFF,0xAD,0x55, 0xFD,0x73,0xAF, 0x00,0x00,0x00, 0x21,0x29,0x67, 0xFF,0xAD,0x76, 0xFF,0xC6,0x39, 0x4B,0x4A,0x8B, 0x36,0x21,0x05, 
        0xFF,0x8C,0x72, 0xFF,0x84,0x31, 0xF3,0x9C,0xF4, 0x15,0x29,0x46, 0xB8,0x6B,0x4E, 0xFF,0x8C,0x72, 0xFF,0x94,0xB3, 0xB7,0x9C,0xF4, 0x13,0x18,0xC5, 0xF4,0x29,0x87, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x8C,0x51, 0xFF,0x6B,0x2D, 0xFF,0x5A,0xCB, 0xFF,0x7B,0xEF, 0xFF,0x8C,0x72, 0xFF,0x84,0x31, 0xFF,0x84,0x10, 0xFF,0x94,0xB2, 0xC0,0x73,0x8E, 0x00,0x29,0x45, 0x00,0x39,0xC7, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xE8, 
        0x00,0x39,0xC7, 0x00,0x31,0x86, 0x00,0x31,0x86, 0x00,0x39,0xC7, 0x02,0x39,0xE8, 0x00,0x31,0xA6, 0x64,0x52,0x8A, 0xFF,0x73,0xAE, 0xFF,0x6B,0x4D, 0xFF,0x7B,0xCF, 0xFF,0x31,0xA8, 0xFF,0x08,0x63, 0xFF,0x18,0xE5, 0xB0,0x18,0xE5, 0x08,0x08,0x43, 
        0xFF,0x42,0x29, 0x46,0x29,0x46, 0x58,0x52,0xAC, 0xEF,0xBD,0xD7, 0x15,0x00,0x00, 0xFF,0x7B,0xF0, 0x6D,0x7B,0xF0, 0x43,0x31,0xA8, 0x45,0x31,0x87, 0x5E,0x4A,0x8A, 0xFF,0x7B,0xCF, 0x62,0x00,0x00, 0x14,0x4A,0x8B, 0xFF,0xDE,0xFB, 0xFF,0xC6,0x59, 
        0xFF,0xCE,0x59, 0xFF,0xD6,0xBA, 0xFF,0xE7,0x1C, 0xFF,0x63,0x0C, 0xFF,0x00,0x02, 0xFF,0x18,0xC5, 0xFF,0x18,0xC5, 0xFF,0x18,0xC5, 0xFF,0x18,0xC5, 0xFF,0x18,0xE5, 0xFF,0x18,0xE5, 0xFF,0x18,0xC5, 0xFF,0x18,0xC5, 0xFF,0x18,0xC5, 0xFF,0x18,0xC5, 
        0xFF,0x10,0x83, 0xFF,0x31,0x87, 0xFF,0x31,0x87, 0xFF,0x7B,0xF0, 0xFF,0xC6,0x38, 0x12,0x31,0x87, 0x8D,0x39,0xC8, 0xAC,0x21,0x05, 0x80,0x21,0x25, 0xFF,0xA5,0x55, 0xFA,0x73,0xAF, 0x3E,0x29,0x46, 0x51,0x29,0x46, 0x7D,0x42,0x29, 0x0D,0x10,0xA4, 
        0x95,0x4A,0x4A, 0xFF,0x8C,0x72, 0xFF,0x63,0x0D, 0xFF,0x4A,0x8B, 0x72,0x10,0x83, 0x10,0x39,0xC8, 0xFF,0xA5,0x55, 0xFF,0xD6,0xBB, 0x8A,0x73,0xD0, 0x00,0x00,0x00, 0x32,0x31,0xA8, 0xFF,0x9D,0x14, 0xFF,0xD6,0xBB, 0x63,0x63,0x2D, 0x00,0x00,0x01, 
        0x76,0x00,0x01, 0xA1,0x08,0x63, 0x73,0x29,0x46, 0x00,0x10,0xA3, 0x62,0x10,0x83, 0x73,0x00,0x00, 0x7C,0x00,0x01, 0x35,0x21,0x05, 0x0D,0x10,0x83, 0xF9,0x21,0x05, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x8C,0x51, 0xFF,0x6B,0x2D, 0xFF,0x63,0x0C, 0xFF,0x6B,0x6D, 0xFF,0x8C,0x71, 0xFF,0x9C,0xF3, 0xFF,0x94,0x92, 0xFF,0xA5,0x34, 0x4E,0x4A,0x69, 0x00,0x29,0x45, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xE8, 0x00,0x39,0xA7, 
        0x00,0x29,0x45, 0x3F,0x4A,0x29, 0xAD,0x52,0xAA, 0xD7,0x31,0xA4, 0xE5,0x8C,0x4F, 0xDF,0x8C,0x70, 0xE6,0x6B,0x6D, 0xFF,0x84,0x30, 0xFF,0x8C,0x31, 0xFF,0x8C,0x51, 0xFF,0x29,0x67, 0xFF,0x10,0x83, 0xFF,0x18,0xE5, 0xB0,0x18,0xE5, 0x08,0x08,0x43, 
        0xFF,0x42,0x2A, 0x46,0x29,0x46, 0x58,0x52,0xAC, 0xEF,0xBD,0xD7, 0x15,0x00,0x00, 0xFF,0x7B,0xF0, 0x66,0x84,0x31, 0x4D,0x18,0xE5, 0xDE,0x84,0x31, 0x00,0x18,0xE4, 0xFF,0x7B,0xEF, 0x7B,0x00,0x00, 0x14,0x4A,0x4A, 0xFF,0xDE,0xFB, 0xFF,0xCE,0x9A, 
        0xFF,0xC6,0x18, 0xFF,0xA5,0x34, 0xFF,0xCE,0x79, 0xBB,0x73,0x8F, 0x2C,0x00,0x00, 0x21,0x00,0x01, 0x21,0x00,0x02, 0x23,0x00,0x02, 0x1D,0x00,0x01, 0x44,0x00,0x21, 0x48,0x00,0x22, 0x20,0x00,0x01, 0x24,0x00,0x01, 0x24,0x00,0x01, 0x20,0x00,0x01, 
        0x21,0x00,0x00, 0x9E,0x42,0x09, 0xFF,0x94,0x72, 0xFF,0x9C,0xF4, 0xFF,0xB5,0xD7, 0x10,0x39,0xE8, 0x71,0x10,0x84, 0xFF,0x4A,0x4A, 0xFF,0x7B,0xD0, 0xFD,0x5A,0xCC, 0xD7,0x31,0xA8, 0x51,0x29,0x67, 0x00,0x00,0x01, 0x00,0x00,0x01, 0x0D,0x10,0x84, 
        0x95,0x39,0xE9, 0xD5,0x31,0xA7, 0xFC,0x5A,0xCC, 0xFF,0x6B,0x6E, 0x71,0x00,0x01, 0x10,0x42,0x09, 0xFF,0xAD,0x76, 0xDD,0x63,0x0D, 0x18,0x08,0x42, 0x1A,0x18,0xC4, 0x35,0x39,0xE8, 0xFF,0x9C,0xD3, 0xFF,0xC6,0x38, 0x78,0x4A,0x6A, 0x17,0x08,0x42, 
        0x80,0x7B,0xD0, 0x13,0x21,0x25, 0x00,0x00,0x01, 0x7B,0x5A,0xEC, 0x55,0x4A,0x8B, 0x3F,0x52,0xAB, 0x41,0x4A,0x8B, 0x62,0x4A,0x8B, 0xA8,0x63,0x0D, 0xFF,0x6B,0x4E, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x8C,0x51, 0xFF,0x6B,0x2D, 0xFF,0x63,0x0C, 0xFF,0x6B,0x4D, 0xFF,0x63,0x2C, 0xFF,0xA5,0x14, 0xFF,0xBD,0xD7, 0xC3,0x7B,0xF0, 0x00,0x29,0x45, 0x00,0x39,0xC7, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC7, 0x00,0x31,0x66, 
        0x92,0x63,0x0C, 0xFF,0x84,0x0E, 0xFF,0x7B,0xD0, 0xFF,0x4A,0x2D, 0xFF,0x8C,0x34, 0xFF,0x9C,0xD4, 0xFF,0x73,0xAD, 0xFF,0x84,0x30, 0xFF,0x94,0x91, 0xFF,0x52,0xAB, 0xFF,0x08,0x43, 0xFF,0x18,0xE5, 0xFF,0x18,0xE5, 0xB0,0x18,0xE5, 0x08,0x08,0x43, 
        0xFF,0x42,0x2A, 0x46,0x29,0x46, 0x58,0x52,0xAC, 0xEF,0xBD,0xD7, 0x15,0x00,0x00, 0xFF,0x7B,0xF0, 0x66,0x84,0x51, 0x31,0x00,0x00, 0xFF,0xC6,0x38, 0x32,0x5A,0xEC, 0x57,0x10,0x83, 0x7D,0x10,0xA4, 0x1A,0x42,0x09, 0xFF,0xDE,0xFB, 0xFF,0xEF,0x9D, 
        0xFF,0x9D,0x14, 0xFF,0x21,0x05, 0xFF,0x39,0xE9, 0x8A,0x29,0x67, 0x00,0x29,0x46, 0x62,0x31,0xA8, 0x6B,0x18,0xC5, 0x66,0x18,0xC4, 0x73,0x31,0x87, 0x13,0x31,0x87, 0x0E,0x21,0x05, 0x78,0x29,0x67, 0x6D,0x18,0xE5, 0x6D,0x18,0xC5, 0x79,0x29,0x67, 
        0x00,0x18,0xC4, 0x55,0x42,0x29, 0xFF,0x8C,0x72, 0xFF,0x9C,0xF4, 0xFF,0xB5,0xD7, 0x19,0x31,0x87, 0x74,0x31,0xA7, 0xB4,0x52,0xAB, 0x30,0x21,0x05, 0x0A,0x08,0x63, 0x1E,0x21,0x05, 0x8B,0x52,0xAB, 0xFF,0x73,0xCF, 0xFF,0x7B,0xF0, 0xB2,0x5A,0xCC, 
        0x2A,0x29,0x46, 0x00,0x10,0x83, 0x00,0x10,0xA4, 0x7D,0x21,0x26, 0x86,0x10,0xA4, 0x18,0x42,0x09, 0xFF,0xB5,0x96, 0x85,0x39,0xC8, 0x55,0x39,0xC8, 0xA0,0x63,0x0D, 0x19,0x29,0x66, 0xFF,0x94,0x92, 0xFF,0xB5,0xB7, 0xFF,0x8C,0x72, 0xFF,0x6B,0x6E, 
        0x86,0x5A,0xED, 0x14,0x21,0x26, 0x10,0x18,0xC4, 0xBE,0x94,0xD3, 0xFF,0xD6,0xBA, 0xFF,0xAD,0x96, 0xFF,0xD6,0xBA, 0xB6,0x6B,0x8F, 0x85,0x3A,0x09, 0xFF,0xC6,0x38, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x8C,0x51, 0xFF,0x6B,0x2D, 0xFF,0x63,0x0C, 0xFF,0x73,0x8E, 0xFF,0x5A,0xAB, 0xFF,0x9D,0x14, 0xFF,0xBD,0xD7, 0x3D,0x42,0x29, 0x00,0x29,0x45, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xE8, 0x00,0x29,0x25, 0x55,0x52,0xAA, 
        0xFF,0xD6,0x98, 0xFF,0x8C,0x56, 0xFF,0x9C,0xBB, 0xFF,0x7B,0x7C, 0xFF,0x7B,0xBB, 0xFF,0x8C,0x5B, 0xFF,0x94,0x98, 0xFF,0xAD,0x79, 0xFF,0xBD,0xFC, 0xFF,0x42,0x09, 0xFF,0x00,0x00, 0xFF,0x18,0xE5, 0xFF,0x18,0xE5, 0xB0,0x18,0xE5, 0x08,0x08,0x43, 
        0xFF,0x42,0x2A, 0x46,0x29,0x46, 0x58,0x52,0xAC, 0xEF,0xBD,0xF7, 0x15,0x00,0x01, 0xFF,0x63,0x2D, 0x5C,0x6B,0x6E, 0x32,0x08,0x63, 0xFF,0x84,0x52, 0xC1,0x7C,0x10, 0xB0,0x4A,0x4A, 0x69,0x00,0x01, 0x1A,0x42,0x29, 0xFF,0xEF,0x7D, 0xFF,0xAD,0x96, 
        0xFF,0x94,0xB3, 0xFF,0x4A,0x4A, 0xFF,0x29,0x46, 0x7A,0x21,0x05, 0x05,0x29,0x46, 0xFF,0x7B,0xF0, 0xFF,0x8C,0x51, 0xFF,0x8C,0x52, 0xFF,0x94,0xB3, 0x42,0x42,0x29, 0x2E,0x00,0x42, 0xFF,0x63,0x2D, 0xFF,0x94,0xB3, 0xFF,0x94,0x92, 0xFF,0x73,0x8F, 
        0x35,0x10,0xA4, 0x3E,0x39,0xE8, 0xFF,0x8C,0x51, 0xFF,0x9C,0xD3, 0xFF,0xB5,0xD7, 0x1A,0x29,0x66, 0x78,0x42,0x29, 0x74,0x5A,0xEC, 0x2F,0x21,0x26, 0xCA,0x7B,0xD0, 0xA2,0x6B,0x4E, 0x5D,0x42,0x09, 0x98,0x63,0x2D, 0xC3,0x6B,0x4E, 0xFF,0x7C,0x10, 
        0xFF,0x9C,0xF3, 0xEC,0x94,0x92, 0x7F,0x4A,0x6A, 0xC5,0x73,0xAF, 0x84,0x31,0xA7, 0x12,0x29,0x66, 0xFF,0xC6,0x18, 0xE9,0xAD,0x76, 0xFF,0x84,0x31, 0x8F,0x52,0xAB, 0x14,0x29,0x67, 0xFF,0x94,0xD3, 0xE4,0x7B,0xF0, 0x6D,0x52,0xAB, 0x00,0x10,0xA4, 
        0x2F,0x21,0x26, 0xFF,0xA5,0x14, 0x66,0x39,0xE8, 0x00,0x00,0x00, 0xFB,0x94,0xD3, 0xFF,0x9C,0xF4, 0x70,0x4A,0x6A, 0x00,0x00,0x01, 0x69,0x4A,0x4A, 0xFF,0xBD,0xF7, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x8C,0x51, 0xFF,0x73,0x8E, 0xFF,0x6B,0x4D, 0xFF,0x7B,0xCF, 0xFF,0x73,0x6E, 0xFF,0x94,0x92, 0x6A,0x4A,0x8A, 0x00,0x29,0x45, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x29,0x45, 0xBD,0x8C,0x50, 
        0xFF,0xDE,0xFB, 0xFF,0x9C,0xBE, 0x97,0x5A,0x79, 0x4B,0x41,0xB7, 0x60,0x41,0xD8, 0xCD,0x73,0x3A, 0xFF,0xB5,0x9E, 0xFF,0xC6,0x3F, 0xFF,0xD6,0xBF, 0xFF,0x8C,0x76, 0xFF,0x08,0x41, 0xFF,0x18,0xC4, 0xFF,0x18,0xE5, 0xB0,0x18,0xE5, 0x08,0x08,0x43, 
        0xFF,0x42,0x2A, 0x45,0x29,0x26, 0x5A,0x5A,0xCC, 0xF7,0xCE,0x9A, 0x1A,0x08,0x63, 0xFF,0x31,0x87, 0x4F,0x39,0xE9, 0x3C,0x31,0xC8, 0xFF,0x73,0x8F, 0xFF,0x73,0xCF, 0xFF,0x6B,0x4D, 0x60,0x00,0x00, 0x15,0x5A,0xEC, 0xFF,0xC6,0x18, 0xFF,0x52,0xAB, 
        0xFF,0xBD,0xF7, 0xFF,0xA5,0x34, 0xFF,0x63,0x2D, 0x82,0x3A,0x09, 0x00,0x10,0xA4, 0xE0,0xA5,0x35, 0xEB,0xCE,0x7A, 0xE1,0xC6,0x59, 0xFF,0xC6,0x59, 0x31,0x31,0x87, 0x24,0x10,0x84, 0xFD,0xB5,0xB6, 0xE3,0xCE,0x79, 0xE3,0xCE,0x79, 0xFF,0xB5,0xD7, 
        0x22,0x18,0xE5, 0x44,0x31,0xA7, 0xFF,0x8C,0x51, 0xFF,0x9C,0xD3, 0xFF,0xB5,0xD7, 0x11,0x31,0x87, 0x71,0x21,0x05, 0xFF,0x94,0xB3, 0xFF,0xAD,0x96, 0xFF,0xA5,0x55, 0xC7,0x6B,0x4D, 0x41,0x29,0x87, 0x25,0x31,0x87, 0x0B,0x29,0x67, 0x00,0x08,0x83, 
        0x3C,0x31,0x87, 0xFF,0xCE,0x9A, 0xFF,0xBD,0xD7, 0xFF,0x7B,0xCF, 0x72,0x10,0xA4, 0x10,0x31,0xA8, 0xFF,0xAD,0x76, 0xFF,0xC6,0x38, 0xFF,0x94,0xB3, 0x83,0x42,0x09, 0x1C,0x29,0x67, 0xFF,0xB5,0x96, 0x35,0x39,0xE8, 0x00,0x10,0x83, 0xD6,0x7B,0xF0, 
        0xFF,0x9C,0xF4, 0x57,0x39,0xE9, 0x40,0x29,0x87, 0x54,0x31,0xA7, 0x33,0x29,0x46, 0x20,0x18,0xE5, 0x00,0x00,0x01, 0xE2,0x84,0x31, 0xFF,0xAD,0x55, 0xFF,0xAD,0x76, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0x6C,0x6B,0x4D, 0x50,0x39,0xE8, 0xA4,0x52,0xAB, 0xAF,0x63,0x2D, 0xA4,0x5A,0xCB, 0x3C,0x4A,0x49, 0x00,0x29,0x66, 0x00,0x39,0xC7, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x31,0x66, 0x21,0x42,0x08, 0xFF,0xC6,0x17, 
        0xFF,0xC6,0x1E, 0x40,0x41,0xD8, 0x00,0x08,0x15, 0x00,0x18,0x56, 0x00,0x10,0x36, 0x00,0x10,0x15, 0x9D,0x73,0x9A, 0xFF,0xCE,0x7D, 0xFF,0xB5,0xBD, 0xFF,0xCE,0x5F, 0xFF,0x39,0xEA, 0xFF,0x00,0x00, 0xFF,0x10,0x83, 0xAF,0x10,0x83, 0x04,0x00,0x01, 
        0xFF,0x42,0x09, 0x58,0x39,0xC8, 0x27,0x31,0xC8, 0x86,0x63,0x2D, 0x0B,0x00,0x01, 0xFF,0x31,0x87, 0x39,0x21,0x05, 0x4B,0x52,0xAC, 0xFF,0xEF,0x5D, 0xFF,0x73,0x8F, 0xFF,0x00,0x00, 0x60,0x00,0x00, 0x17,0x5B,0x0D, 0xFF,0xC6,0x38, 0x92,0x31,0x87, 
        0xB9,0x8C,0x72, 0xFF,0xE7,0x5D, 0xFF,0xCE,0x59, 0x80,0x63,0x2D, 0x00,0x00,0x00, 0x00,0x21,0x05, 0x00,0x21,0x26, 0x00,0x21,0x05, 0x00,0x29,0x66, 0x00,0x18,0xE5, 0x00,0x21,0x05, 0x00,0x29,0x87, 0x00,0x21,0x05, 0x00,0x21,0x05, 0x00,0x29,0x67, 
        0x00,0x08,0x63, 0x68,0x42,0x09, 0xFF,0x8C,0x51, 0xFF,0x9C,0xD3, 0xFF,0xB5,0xD7, 0x11,0x39,0xE9, 0x71,0x00,0x01, 0xFF,0x63,0x0D, 0xD5,0xA5,0x55, 0x90,0x31,0xA7, 0xE6,0x4A,0x6A, 0xFF,0x7B,0xF0, 0xFF,0x63,0x2D, 0xFF,0x6B,0x6E, 0xEC,0x52,0xAB, 
        0xD2,0x63,0x2D, 0xFF,0x94,0xD3, 0xFF,0x5A,0xCC, 0xFF,0x31,0xA7, 0x72,0x10,0xA4, 0x10,0x39,0xE8, 0xFF,0xAD,0x76, 0xFF,0x9C,0xF4, 0xFF,0x8C,0x52, 0x83,0x4A,0x2A, 0x11,0x21,0x26, 0xFF,0xB5,0xB7, 0xFF,0x94,0xB3, 0xFF,0x84,0x11, 0xB6,0x73,0x8F, 
        0x00,0x00,0x22, 0x42,0x29,0x67, 0xFF,0xA5,0x34, 0x73,0x42,0x4A, 0x00,0x00,0x01, 0x93,0x63,0x2D, 0x36,0x18,0xE5, 0xC0,0x8C,0x52, 0xFF,0xC6,0x18, 0xFF,0xB5,0xB6, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0x41,0x5A,0xEC, 0x00,0x18,0xA3, 0x00,0x31,0xA7, 0x00,0x31,0xA7, 0x00,0x31,0x86, 0x00,0x31,0x66, 0x00,0x39,0xC7, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xE8, 0x00,0x21,0x25, 0x73,0x5A,0xCA, 0xFF,0xDE,0xDB, 
        0x7C,0x62,0xFB, 0x00,0x00,0x15, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x18,0x76, 0x03,0x18,0x76, 0xDF,0x8C,0x1A, 0xFF,0x9C,0xFB, 0xFF,0xAD,0x5F, 0xFF,0x63,0x10, 0xFF,0x08,0x61, 0xFF,0x21,0x05, 0xB1,0x21,0x05, 0x0D,0x10,0xA4, 
        0xFF,0x4A,0x6A, 0x6D,0x31,0xA8, 0x00,0x39,0xE8, 0x00,0x18,0xC3, 0x68,0x21,0x05, 0xFF,0x8C,0x72, 0x13,0x29,0x26, 0x79,0x5A,0xCC, 0xFF,0xDF,0x1C, 0xFF,0x5A,0xCB, 0xFF,0x00,0x00, 0x60,0x00,0x00, 0x1B,0x52,0xAB, 0xFF,0xEF,0x7D, 0x12,0x39,0xC8, 
        0x5B,0x00,0x00, 0xFF,0x63,0x2D, 0xFF,0xD6,0xBA, 0x36,0x39,0xE9, 0x20,0x10,0xA4, 0xDC,0x39,0xC8, 0xC0,0x21,0x26, 0xBF,0x29,0x67, 0xBC,0x29,0x67, 0xCC,0x39,0xC8, 0xCD,0x39,0xC8, 0xBD,0x29,0x67, 0xBF,0x29,0x67, 0xC1,0x29,0x67, 0xD6,0x31,0xA8, 
        0x2C,0x10,0x84, 0x5B,0x42,0x09, 0xFF,0x84,0x51, 0xFF,0x94,0xD3, 0xFF,0xB5,0xD7, 0x11,0x39,0xC8, 0x72,0x00,0x02, 0xFF,0x9C,0xF4, 0x97,0x7B,0xCF, 0x00,0x00,0x00, 0x00,0x10,0xA3, 0x00,0x10,0x83, 0x14,0x08,0x62, 0x45,0x18,0xA3, 0x8E,0x39,0xC8, 
        0xC9,0x52,0xAB, 0xD9,0x39,0xC8, 0xFA,0x08,0x63, 0xFF,0x29,0x66, 0x72,0x18,0xE5, 0x10,0x39,0xC8, 0xFF,0xB5,0x96, 0xFF,0x94,0x92, 0xFF,0x84,0x11, 0x83,0x4A,0x4A, 0x19,0x31,0x87, 0xFF,0x8C,0x52, 0x96,0x39,0xC8, 0x00,0x08,0x63, 0x00,0x00,0x01, 
        0xC4,0x52,0xAB, 0xFF,0xA5,0x35, 0x48,0x29,0x87, 0x04,0x08,0x42, 0x19,0x10,0x83, 0xF9,0x8C,0x72, 0x87,0x6B,0x8E, 0x13,0x10,0x83, 0xFF,0xD6,0xBB, 0xFF,0xAD,0x56, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0x41,0x63,0x0C, 0x00,0x21,0x25, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x02,0x21,0x24, 0xEA,0x6B,0x4C, 0xFF,0xAD,0x5B, 
        0x25,0x31,0x38, 0x00,0x18,0x76, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x08,0x15, 0x85,0x52,0x78, 0xFF,0xAD,0x3B, 0xFF,0x94,0x7C, 0xFF,0x9C,0xD9, 0xFF,0x9D,0x13, 0xFF,0x94,0xD3, 0xF7,0x94,0xD3, 0xE9,0xA5,0x55, 
        0xFF,0x84,0x31, 0x35,0x10,0x84, 0x4C,0x52,0xAC, 0xFF,0x52,0xAC, 0xFF,0x6B,0x4E, 0xD5,0x7B,0xF0, 0x00,0x00,0x22, 0xBD,0x6B,0x8E, 0xFF,0xAD,0x76, 0xFF,0x39,0xE8, 0xFF,0x00,0x00, 0x5E,0x00,0x00, 0x1F,0x6B,0x4E, 0xFF,0xC6,0x38, 0x10,0x18,0xE5, 
        0x7C,0x18,0xE5, 0xFF,0x7B,0xF0, 0xED,0xBE,0x18, 0x00,0x00,0x02, 0x85,0x52,0xCC, 0xFF,0x84,0x31, 0xFF,0x29,0x67, 0xFF,0x42,0x09, 0xFF,0x42,0x09, 0xFF,0x42,0x09, 0xFF,0x42,0x09, 0xFF,0x42,0x09, 0xFF,0x42,0x09, 0xFF,0x41,0xE9, 0xFF,0x52,0x8B, 
        0xFC,0x21,0x05, 0xFA,0x39,0xE8, 0xFF,0x8C,0x72, 0xFF,0x9C,0xF4, 0xFF,0xB5,0xB7, 0x11,0x39,0xC8, 0x73,0x00,0x22, 0xFF,0x9D,0x14, 0xFF,0x9D,0x14, 0xFF,0x62,0xED, 0xE9,0x63,0x2D, 0xB7,0x4A,0x6A, 0x82,0x52,0x8B, 0x51,0x42,0x09, 0x25,0x29,0x67, 
        0x00,0x10,0x83, 0x1C,0x21,0x05, 0xF5,0x8C,0x52, 0xFF,0x6B,0x6E, 0x74,0x10,0x83, 0x10,0x39,0xC8, 0xFF,0xB5,0x96, 0xFF,0x94,0xB3, 0xFF,0x84,0x31, 0x83,0x4A,0x4A, 0x19,0x29,0x66, 0xFF,0xA5,0x55, 0x5A,0x4A,0x8B, 0x88,0x29,0x67, 0xFF,0x84,0x11, 
        0xCC,0x6B,0x4E, 0x00,0x18,0xC4, 0x41,0x29,0x67, 0xFF,0x39,0xE9, 0x14,0x08,0x63, 0xAE,0x10,0x82, 0xFF,0x9D,0x14, 0x0E,0x10,0xA3, 0x3D,0x42,0x29, 0xFF,0x84,0x11, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0x41,0x63,0x0C, 0x00,0x21,0x25, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xE8, 0x00,0x18,0xE4, 0x7D,0x6B,0x2B, 0xFF,0xC6,0x19, 0xE6,0x94,0x9C, 
        0x02,0x28,0xF6, 0x00,0x20,0xB6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x18,0x96, 0x5B,0x39,0x97, 0xFF,0x62,0xD9, 0xFF,0x52,0x78, 0xFF,0x4A,0x3A, 0xFF,0x84,0x37, 0xFF,0xBE,0x36, 0xFF,0xBE,0x18, 0xFF,0xAD,0x55, 
        0xFF,0x6B,0x6E, 0x33,0x10,0xA4, 0x49,0x52,0x8B, 0xFF,0xBD,0xF8, 0xFF,0xB5,0xD7, 0x61,0x31,0xC8, 0x06,0x10,0x83, 0xFF,0xAD,0x55, 0xFF,0xB5,0x96, 0xFF,0x29,0x45, 0xFF,0x00,0x00, 0x5C,0x00,0x00, 0x23,0x5A,0xCC, 0xFF,0xBD,0xF8, 0x00,0x00,0x01, 
        0xA4,0x7B,0xD0, 0xFF,0xF7,0xDF, 0x67,0x39,0xE8, 0x00,0x00,0x01, 0xEF,0xB5,0x96, 0xFF,0xD6,0xBB, 0xFF,0x6B,0x4E, 0xFF,0x29,0x46, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x3A,0x09, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x4A,0x4A, 
        0xFF,0x19,0x05, 0xFF,0x31,0xA8, 0xFF,0x9C,0xF4, 0xFF,0xAD,0x76, 0xFF,0xB5,0x96, 0x17,0x31,0x87, 0x59,0x29,0x66, 0xF9,0x84,0x31, 0xDB,0x84,0x11, 0xE8,0x94,0x92, 0xF3,0x84,0x31, 0xFE,0x84,0x31, 0xFF,0x8C,0x72, 0xFF,0x8C,0x72, 0xED,0x84,0x31, 
        0xB6,0x6B,0x8E, 0x9C,0x63,0x2D, 0xD7,0x9D,0x14, 0xFE,0x9C,0xD3, 0x5A,0x29,0x46, 0x16,0x29,0x67, 0xFF,0xB5,0x96, 0xFF,0x94,0xB3, 0xFF,0x84,0x31, 0x83,0x4A,0x4A, 0x11,0x21,0x26, 0xFF,0xAD,0x96, 0xFF,0xB5,0x96, 0xDF,0x6B,0x6E, 0x1F,0x21,0x46, 
        0x00,0x18,0xC4, 0xC5,0x6B,0x6E, 0xFF,0xBD,0xF8, 0xE9,0x84,0x31, 0x00,0x10,0x84, 0xB2,0x00,0x00, 0xFF,0x84,0x31, 0xD2,0xAD,0x76, 0x00,0x00,0x00, 0x4D,0x21,0x05, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0x41,0x63,0x0C, 0x00,0x21,0x25, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xE8, 0x00,0x29,0x45, 0x43,0x42,0x29, 0xFF,0xC6,0x17, 0xFF,0xDE,0xDE, 0xF0,0x9C,0xDC, 
        0x0E,0x28,0xD6, 0x00,0x18,0x96, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x10,0x35, 0x6C,0x4A,0x18, 0xFF,0x94,0x9B, 0xFF,0x83,0xFA, 0xFF,0x7B,0xBB, 0xFF,0x8C,0x5A, 0xFF,0x9C,0xF3, 0xFF,0x94,0xB2, 0xFF,0x6B,0x4E, 
        0xFF,0x63,0x0D, 0x32,0x21,0x05, 0x48,0x4A,0x6A, 0xFF,0xD6,0xBA, 0xBF,0x94,0xB3, 0x00,0x00,0x00, 0x8C,0x6B,0x6E, 0xFF,0xE7,0x3D, 0xFF,0xC6,0x18, 0xFF,0x8C,0x72, 0xFF,0x84,0x51, 0xB2,0x63,0x2D, 0x00,0x08,0x63, 0x00,0x21,0x05, 0x16,0x10,0xA4, 
        0xFF,0x94,0xD3, 0x9D,0x7B,0xF0, 0x00,0x00,0x00, 0x96,0x5A,0xEC, 0xFF,0xCE,0x7A, 0xFF,0xCE,0x79, 0xFF,0x8C,0x72, 0xFF,0x29,0x46, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x3A,0x09, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x4A,0x4A, 
        0xFF,0x18,0xE4, 0xFF,0x39,0xC8, 0xFF,0xB5,0x96, 0xFF,0xAD,0x75, 0xFF,0xB5,0xB6, 0x39,0x39,0xE9, 0x00,0x10,0x84, 0x00,0x21,0x26, 0x00,0x18,0xE5, 0x00,0x18,0xE5, 0x00,0x21,0x05, 0x00,0x21,0x05, 0x00,0x19,0x05, 0x00,0x21,0x05, 0x03,0x21,0x25, 
        0x16,0x29,0x46, 0x1B,0x29,0x46, 0x00,0x18,0xC4, 0x00,0x21,0x26, 0x00,0x10,0x84, 0x38,0x39,0xE9, 0xFF,0xB5,0xB6, 0xFF,0x9C,0xD3, 0xFF,0x84,0x31, 0x82,0x4A,0x6A, 0x15,0x29,0x67, 0xFF,0xC6,0x38, 0x60,0x4A,0x6A, 0x00,0x00,0x22, 0x73,0x3A,0x09, 
        0xD4,0x6B,0x4E, 0xA3,0x5A,0xEC, 0x9B,0x63,0x2D, 0x1B,0x31,0x87, 0x17,0x10,0xA4, 0xFF,0x6B,0x6E, 0xFF,0x8C,0x72, 0xFF,0xC6,0x39, 0xAA,0x63,0x0D, 0x92,0x4A,0x8B, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0x41,0x63,0x0C, 0x00,0x21,0x25, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xC8, 0x00,0x39,0xE8, 0x00,0x39,0xC7, 0x00,0x29,0x45, 0x2C,0x29,0x66, 0xF6,0x9C,0xF3, 0xFF,0xCE,0x58, 0xFF,0xA4,0xFA, 0xFF,0xB5,0x7D, 
        0x54,0x41,0xF7, 0x00,0x08,0x15, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x28,0xF6, 0x00,0x20,0xD6, 0x00,0x08,0x15, 0xB4,0x83,0xFA, 0xFF,0xD6,0x9D, 0xFF,0xBD,0xBC, 0xFF,0xCE,0x3F, 0xFF,0xA5,0x19, 0xFF,0x4A,0x4A, 0xFF,0x4A,0x4A, 0xFF,0x4A,0x8B, 
        0xFF,0x63,0x2D, 0x42,0x18,0xC4, 0x56,0x4A,0x8A, 0xFF,0xBD,0xD7, 0xA0,0x39,0xE9, 0x3B,0x29,0x67, 0xFE,0xCE,0x7A, 0xFF,0xD6,0x9A, 0xFF,0xC6,0x39, 0xFF,0xDE,0xFB, 0xFF,0xF7,0xBE, 0xFF,0xDE,0xFB, 0xA3,0x39,0xE9, 0x5A,0x00,0x42, 0xD3,0x7B,0xF0, 
        0xFF,0xBD,0xF8, 0x57,0x39,0xC8, 0x46,0x39,0xC8, 0xFF,0xC6,0x59, 0xFF,0xB5,0xB6, 0xFF,0xB5,0xB6, 0xFF,0xA5,0x55, 0xFF,0x42,0x09, 0xFF,0x31,0xA8, 0xFF,0x39,0xE9, 0xFF,0x3A,0x09, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x4A,0x4A, 
        0xFF,0x18,0xC5, 0xFF,0x52,0xAB, 0xFF,0xB5,0xD7, 0xFF,0xA5,0x14, 0xFF,0xB5,0x76, 0x2B,0x31,0x87, 0x5B,0x18,0xC4, 0xEA,0x5A,0xED, 0xCA,0x5A,0xCC, 0xCA,0x5A,0xCC, 0xCA,0x5A,0xCC, 0xCA,0x5A,0xCC, 0xCA,0x5A,0xCC, 0xCA,0x5A,0xCC, 0xCA,0x5A,0xCC, 
        0xCA,0x5A,0xCC, 0xCA,0x5A,0xAC, 0xCA,0x5A,0xCC, 0xEA,0x63,0x0D, 0x5C,0x18,0xC4, 0x2A,0x29,0x87, 0xFF,0xAD,0x96, 0xFF,0x94,0x93, 0xFF,0x7C,0x10, 0x8C,0x42,0x29, 0x23,0x21,0x05, 0xFF,0xB5,0x96, 0xCA,0x94,0xB3, 0xD7,0x5A,0xEC, 0xFF,0xB5,0x96, 
        0xC0,0x8C,0x71, 0x03,0x18,0xE5, 0x09,0x21,0x05, 0x2E,0x08,0x42, 0xDB,0x94,0xB2, 0xFF,0xC6,0x38, 0xFF,0xB5,0x96, 0xFF,0xA5,0x14, 0xFF,0x84,0x51, 0xFF,0x8C,0x72, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0x41,0x5A,0xCB, 0x00,0x18,0xC4, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x39,0xC7, 0x00,0x31,0xA7, 0x00,0x29,0x66, 0x00,0x29,0x65, 0x4A,0x52,0x8A, 0xF9,0x73,0x8E, 0xFF,0x94,0xD2, 0xFF,0xBD,0xD7, 0xFF,0xA5,0x3B, 0xFF,0xBD,0xDD, 
        0xD4,0x94,0x9B, 0x00,0x10,0x56, 0x00,0x10,0x35, 0x00,0x20,0xB6, 0x00,0x18,0x96, 0x00,0x08,0x15, 0x55,0x41,0xD8, 0xFF,0xC5,0xFD, 0xFF,0xBD,0xFC, 0xFF,0xBD,0xBC, 0xFF,0xCE,0x3F, 0xFF,0x9C,0xB7, 0xFF,0x39,0xC7, 0xFF,0x42,0x29, 0xFF,0x4A,0x4A, 
        0xFF,0x52,0xAB, 0xF7,0x08,0x42, 0xF9,0x42,0x08, 0xFF,0xAD,0x76, 0xFF,0x63,0x4D, 0xFF,0x8C,0x72, 0xFF,0xDE,0xFC, 0xFF,0xC6,0x39, 0xFF,0xC6,0x59, 0xFF,0xCE,0x7A, 0xFF,0xD6,0xBB, 0xFF,0xCE,0x9A, 0xFF,0x63,0x0D, 0xFF,0x39,0xC8, 0xFF,0x94,0xD3, 
        0xFF,0xA5,0x35, 0xFE,0x8C,0x72, 0xFE,0xB5,0xD7, 0xFF,0xCE,0x99, 0xFF,0xB5,0xD7, 0xFF,0xC6,0x38, 0xFF,0xB5,0xD7, 0xFF,0x42,0x2A, 0xFF,0x31,0x88, 0xFF,0x39,0xE9, 0xFF,0x3A,0x09, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x39,0xE9, 0xFF,0x4A,0x4A, 
        0xFF,0x21,0x26, 0xFF,0x73,0x8F, 0xFF,0xAD,0x56, 0xFF,0x9C,0xD3, 0xFF,0xAD,0x55, 0xF8,0x21,0x05, 0xFB,0x00,0x21, 0xFF,0x6B,0x6E, 0xFF,0x73,0x8F, 0xFF,0x6B,0x6E, 0xFF,0x6B,0x6E, 0xFF,0x6B,0x6E, 0xFF,0x6B,0x6E, 0xFF,0x6B,0x6E, 0xFF,0x6B,0x6E, 
        0xFF,0x6B,0x6E, 0xFF,0x6B,0x6E, 0xFF,0x73,0x8F, 0xFF,0x6B,0x6E, 0xFB,0x00,0x21, 0xF7,0x21,0x05, 0xFF,0xA5,0x55, 0xFF,0x84,0x51, 0xFF,0x73,0xAF, 0xFA,0x39,0xC7, 0xF7,0x10,0x83, 0xFF,0x94,0x93, 0xFF,0xBE,0x18, 0xFF,0x73,0xAF, 0xFF,0x94,0x92, 
        0xFF,0xAD,0x55, 0xFF,0xB5,0xB6, 0xFF,0xAD,0x55, 0xFF,0x42,0x09, 0xFF,0xB5,0xD7, 0xFF,0xCE,0x59, 0xFF,0xC6,0x18, 0xFF,0xA5,0x35, 0xFF,0x7B,0xD0, 0xFF,0x7B,0xF0, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0x87,0x73,0x8E, 0x00,0x31,0x66, 0x00,0x31,0x86, 0x00,0x31,0x66, 0x00,0x31,0x86, 0x00,0x31,0x86, 0x00,0x39,0xC7, 0x3A,0x4A,0x49, 0xB8,0x63,0x0C, 0xFF,0x94,0x92, 0xFF,0x7B,0xEF, 0xFF,0x8C,0x50, 0xFF,0xBD,0xF7, 0xFF,0xAD,0x5C, 0xFF,0xB5,0x9D, 
        0xFF,0xAD,0x3C, 0xCF,0x6B,0x19, 0x31,0x39,0x97, 0x00,0x28,0xD6, 0x02,0x29,0x16, 0x72,0x39,0x77, 0xFF,0xAD,0x3C, 0xFF,0xDE,0xBE, 0xFF,0xBD,0xFD, 0xFF,0xC5,0xFD, 0xFF,0xCE,0x5E, 0xFF,0xBD,0xDC, 0xFF,0x4A,0x6A, 0xFF,0x42,0x09, 0xFF,0x4A,0x4A, 
        0xFF,0x52,0xCC, 0xFF,0x08,0x42, 0xFF,0x42,0x09, 0xFF,0xAD,0x96, 0xFF,0x63,0x2D, 0xFF,0x7B,0xD0, 0xFF,0xD6,0xBB, 0xFF,0xC6,0x59, 0xFF,0xC6,0x39, 0xFF,0xCE,0x59, 0xFF,0xD6,0x9A, 0xFF,0xCE,0x59, 0xFF,0x52,0xAC, 0xFF,0x29,0x87, 0xFF,0x8C,0x72, 
        0xFF,0x9D,0x15, 0xFF,0x8C,0x72, 0xFF,0xAD,0x55, 0xFF,0xBE,0x18, 0xFF,0xB5,0xD7, 0xFF,0xBE,0x38, 0xFF,0xB5,0xB6, 0xFF,0x42,0x29, 0xFF,0x31,0x88, 0xFF,0x39,0xE9, 0xFF,0x42,0x29, 0xFF,0x42,0x09, 0xFF,0x39,0xE9, 0xFF,0x39,0xC8, 0xFF,0x4A,0x4A, 
        0xFF,0x21,0x25, 0xFF,0x6B,0x6E, 0xFF,0xAD,0x76, 0xFF,0x9C,0xF4, 0xFF,0xAD,0x55, 0xFF,0x21,0x05, 0xFF,0x00,0x22, 0xFF,0x63,0x2D, 0xFF,0x6B,0x4E, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 
        0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x6B,0x4E, 0xFF,0x63,0x4D, 0xFF,0x00,0x22, 0xFF,0x21,0x05, 0xFF,0xA5,0x55, 0xFF,0x8C,0x51, 0xFF,0x73,0xAF, 0xFF,0x39,0xC7, 0xFF,0x10,0xA3, 0xFF,0x94,0xD3, 0xFF,0xB5,0x96, 0xFF,0x6B,0x6E, 0xFF,0x94,0x92, 
        0xFF,0xA5,0x14, 0xFF,0xAD,0x55, 0xFF,0xA5,0x14, 0xFF,0x31,0xA8, 0xFF,0xA5,0x55, 0xFF,0xC6,0x18, 0xFF,0xBD,0xF7, 0xFF,0xA5,0x35, 0xFF,0x7B,0xD0, 0xFF,0x7B,0xF0, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x94,0xB3, 0xF7,0x7B,0xCF, 0xC1,0x94,0x92, 0xA2,0x73,0xAF, 0x9F,0x63,0x2C, 0xB3,0x84,0x30, 0xEA,0x84,0x10, 0xFF,0x8C,0x51, 0xFF,0x7B,0xEF, 0xFF,0x84,0x31, 0xFF,0x73,0x8E, 0xFF,0x8C,0x51, 0xFF,0xBD,0xF8, 0xFF,0xAD,0x5C, 0xFF,0xB5,0x9D, 
        0xFF,0x94,0x9B, 0xFF,0x83,0xFA, 0xFF,0x94,0x7B, 0xE6,0x94,0x7B, 0xF2,0x7B,0xDA, 0xFF,0x62,0xB9, 0xFF,0xAD,0x5C, 0xFF,0xD6,0xBD, 0xFF,0xC6,0x1D, 0xFF,0xC6,0x1D, 0xFF,0xCE,0x7F, 0xFF,0xC6,0x1D, 0xFF,0x52,0xAB, 0xFF,0x4A,0x49, 0xFF,0x4A,0x6A, 
        0xFF,0x52,0xAB, 0xFF,0x08,0x42, 0xFF,0x42,0x09, 0xFF,0xAD,0x96, 0xFF,0x63,0x2D, 0xFF,0x7B,0xD0, 0xFF,0xD6,0xBB, 0xFF,0xC6,0x59, 0xFF,0xC6,0x39, 0xFF,0xCE,0x9A, 0xFF,0xDE,0xDB, 0xFF,0xCE,0x59, 0xFF,0x52,0xAB, 0xFF,0x29,0x87, 0xFF,0x8C,0x72, 
        0xFF,0xA5,0x35, 0xFF,0x84,0x51, 0xFF,0xA5,0x35, 0xFF,0xBE,0x18, 0xFF,0xCE,0x9A, 0xFF,0xD6,0xDB, 0xFF,0xAD,0x76, 0xFF,0x31,0x87, 0xFF,0x31,0x88, 0xFF,0x4A,0x4A, 0xFF,0x29,0x67, 0xFF,0x39,0xE8, 0xFF,0x42,0x09, 0xFF,0x29,0x47, 0xFF,0x42,0x09, 
        0xFF,0x21,0x05, 0xFF,0x73,0x8F, 0xFF,0xBD,0xB7, 0xFF,0xA5,0x35, 0xFF,0xAD,0x35, 0xFF,0x20,0xE4, 0xFF,0x00,0x21, 0xFF,0x63,0x2E, 0xFF,0x6B,0x4E, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 
        0xFF,0x63,0x2D, 0xFF,0x63,0x2D, 0xFF,0x6B,0x4E, 0xFF,0x63,0x4D, 0xFF,0x00,0x22, 0xFF,0x21,0x05, 0xFF,0xA5,0x55, 0xFF,0x8C,0x72, 0xFF,0x73,0xAF, 0xFF,0x39,0xC7, 0xFF,0x10,0xA3, 0xFF,0x94,0xD3, 0xFF,0xB5,0x96, 0xFF,0x6B,0x6E, 0xFF,0x94,0xB3, 
        0xFF,0xA5,0x14, 0xFF,0xA5,0x55, 0xFF,0x9D,0x14, 0xFF,0x31,0xA8, 0xFF,0xA5,0x35, 0xFF,0xC6,0x38, 0xFF,0xD6,0xBA, 0xFF,0xBD,0xF8, 0xFF,0x7B,0xD0, 0xFF,0x7B,0xF0, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x94,0x92, 0xFF,0x73,0x8E, 0xFF,0xB5,0x96, 0xFF,0x94,0xB2, 0xFF,0x73,0xAE, 0xFF,0xAD,0x55, 0xFF,0x94,0x92, 0xFF,0x84,0x10, 0xFF,0x73,0x8E, 0xFF,0x84,0x30, 0xFF,0x73,0xAE, 0xFF,0x8C,0x30, 0xFF,0xBD,0xF8, 0xFF,0xB5,0x9D, 0xFF,0xCE,0x5F, 
        0xFF,0x9C,0xDC, 0xFF,0x73,0x79, 0xFF,0x84,0x1A, 0xFF,0xA4,0xFB, 0xFF,0x83,0xFA, 0xFF,0x52,0x58, 0xFF,0xA5,0x1B, 0xFF,0xDE,0xFF, 0xFF,0xDE,0xDF, 0xFF,0xCE,0x5E, 0xFF,0xC6,0x3E, 0xFF,0xB5,0x98, 0xFF,0x63,0x2D, 0xFF,0x29,0x46, 0xFF,0x42,0x4A, 
        0xFF,0x5A,0xEC, 0xFF,0x08,0x42, 0xFF,0x42,0x09, 0xFF,0xBD,0xD8, 0xFF,0x6B,0x8E, 0xFF,0x84,0x11, 0xFF,0xEF,0x7D, 0xFF,0xD6,0x9A, 0xFF,0xC6,0x39, 0xFF,0xB5,0xB7, 0xFF,0xCE,0x59, 0xFF,0xDF,0x1C, 0xFF,0x63,0x0D, 0xFF,0x31,0x87, 0xFF,0x8C,0x72, 
        0xFF,0xA5,0x15, 0xFF,0x84,0x31, 0xFF,0xAD,0x96, 0xFF,0xDE,0xFB, 0xFF,0x9C,0xF4, 0xFF,0x73,0xAF, 0xFF,0xB5,0xD7, 0xFF,0x94,0xB3, 0xFF,0x42,0x29, 0xFF,0x4A,0x6A, 0xFF,0x10,0xA4, 0xFF,0x29,0x86, 0xFF,0x4A,0x6A, 0xFF,0x73,0xAF, 0xFF,0x4A,0x6A, 
        0xFF,0x31,0xA8, 0xFF,0x4A,0x6A, 0xFF,0x5A,0xEC, 0xFF,0x52,0xAB, 0xFF,0xAD,0x76, 0xFF,0x39,0xA7, 0xFF,0x00,0x01, 0xFF,0x5A,0xED, 0xFF,0x63,0x0D, 0xFF,0x63,0x0D, 0xFF,0x73,0x8E, 0xFF,0x73,0x8F, 0xFF,0x63,0x0D, 0xFF,0x63,0x0D, 0xFF,0x73,0x8F, 
        0xFF,0x73,0x8F, 0xFF,0x63,0x2D, 0xFF,0x6B,0x4E, 0xFF,0x63,0x2D, 0xFF,0x00,0x21, 0xFF,0x21,0x05, 0xFF,0xBE,0x18, 0xFF,0x8C,0x92, 0xFF,0x73,0xAF, 0xFF,0x39,0xE8, 0xFF,0x10,0x83, 0xFF,0x9C,0xD4, 0xFF,0xBD,0xD7, 0xFF,0x7B,0xD0, 0xFF,0xA5,0x34, 
        0xFF,0xAD,0x55, 0xFF,0xA5,0x34, 0xFF,0x9D,0x14, 0xFF,0x31,0x87, 0xFF,0xB5,0xB6, 0xFF,0xDE,0xDB, 0xFF,0x7B,0xF0, 0xFF,0x63,0x2D, 0xFF,0x84,0x31, 0xFF,0x84,0x31, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x94,0x92, 0xFF,0x94,0x92, 0xFF,0xB5,0x96, 0xFF,0x9C,0xF3, 0xFF,0x94,0x92, 0xFF,0xA5,0x34, 0xFF,0x7B,0xF0, 0xFF,0x73,0x6D, 0xFF,0x6B,0x4D, 0xFF,0x8C,0x51, 0xFF,0x73,0xAE, 0xFF,0x94,0xB2, 0xFF,0xA5,0x55, 0xFF,0x7B,0xD1, 0xFF,0x7B,0xF3, 
        0xFF,0x9C,0x9C, 0xFF,0x7B,0x9B, 0xFF,0x83,0xFA, 0xFF,0x9C,0xBB, 0xFF,0x7B,0xDA, 0xFF,0x52,0x59, 0xFF,0xC5,0xDF, 0xFF,0xD6,0x9C, 0xFF,0x94,0xB6, 0xFF,0xBD,0xDB, 0xFF,0xC6,0x1A, 0xFF,0x9C,0xF3, 0xFF,0x63,0x4D, 0xFF,0x00,0x01, 0xFF,0x42,0x09, 
        0xFF,0x6B,0x4E, 0xFF,0x08,0x41, 0xFF,0x4A,0x49, 0xFF,0x9D,0x14, 0xFF,0x42,0x29, 0xFF,0x6B,0x6E, 0xFF,0xAD,0x76, 0xFF,0xB5,0xD7, 0xFF,0xCE,0x59, 0xFF,0xA5,0x35, 0xFF,0x94,0xD3, 0xFF,0x9C,0xF4, 0xFF,0x42,0x29, 0xFF,0x29,0x67, 0xFF,0x8C,0x52, 
        0xFF,0xA5,0x35, 0xFF,0x84,0x51, 0xFF,0xA5,0x55, 0xFF,0x73,0xD0, 0xFF,0x00,0x01, 0xFF,0x31,0xC7, 0xFF,0xD6,0xBA, 0xFF,0xD6,0xDB, 0xFF,0x4A,0x8A, 0xFF,0x42,0x09, 0xFF,0x18,0xE5, 0xFF,0x29,0x66, 0xFF,0x42,0x49, 0xFF,0xB5,0xB6, 0xFF,0x63,0x4D, 
        0xFF,0x31,0xC8, 0xFF,0x39,0xE9, 0xFF,0x29,0x87, 0xFF,0x29,0x67, 0xFF,0xA5,0x35, 0xFF,0x73,0xCF, 0xFF,0x3A,0x09, 0xFF,0x73,0xAF, 0xFF,0x84,0x31, 0xFF,0x73,0x8F, 0xFF,0x4A,0x6A, 0xFF,0x4A,0x4A, 0xFF,0x6B,0x6E, 0xFF,0x6B,0x6E, 0xFF,0x4A,0x4A, 
        0xFF,0x42,0x2A, 0xFF,0x6B,0x4E, 0xFF,0x63,0x0D, 0xFF,0x5A,0xCC, 0xFF,0x00,0x21, 0xFF,0x29,0x46, 0xFF,0x6B,0x6E, 0xFF,0x4A,0x8B, 0xFF,0x84,0x31, 0xFF,0x39,0xE7, 0xFF,0x10,0x83, 0xFF,0x94,0x92, 0xFF,0xAD,0x55, 0xFF,0x4A,0x4A, 0xFF,0x42,0x29, 
        0xFF,0x8C,0x51, 0xFF,0xB5,0xB6, 0xFF,0x9C,0xF4, 0xFF,0x31,0x86, 0xFF,0xAD,0x76, 0xFF,0x84,0x10, 0xFF,0x08,0x42, 0xFF,0x00,0x22, 0xFF,0x6B,0x4E, 0xFF,0x7C,0x10, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x84,0x31, 0xFF,0xCE,0x7A, 0xFF,0xD6,0x9A, 0xFF,0xCE,0x9A, 0xFF,0xD6,0xDB, 0xFF,0xAD,0x96, 0xFF,0xB5,0xB6, 0xFF,0x9C,0xF3, 0xFF,0x84,0x10, 0xFF,0x6B,0x4D, 0xFF,0x31,0x87, 0xFF,0xB5,0xD7, 0xFF,0x9D,0x14, 0xFF,0x63,0x0C, 0xFF,0x00,0x00, 
        0xFF,0x42,0x2A, 0xFF,0x94,0x7B, 0xFF,0x7B,0xBB, 0xFF,0x94,0x9B, 0xFF,0x8C,0x1D, 0xFF,0x62,0xF9, 0xFF,0x5A,0xCF, 0xFF,0x42,0x08, 0xFF,0x21,0x04, 0xFF,0x9C,0xF4, 0xFF,0xD6,0x9A, 0xFF,0x9D,0x14, 0xFF,0x6B,0x4E, 0xFF,0x00,0x02, 0xFF,0x4A,0x4A, 
        0xFF,0x42,0x49, 0xFF,0x18,0xC4, 0xFF,0x42,0x29, 0xFF,0x5A,0xED, 0xFF,0x18,0xC4, 0xFF,0x21,0x26, 0xFF,0x29,0x66, 0xFF,0x84,0x31, 0xFF,0xDE,0xDB, 0xFF,0xB5,0x96, 0xFF,0x8C,0x92, 0xFF,0x5A,0xEB, 0xFF,0x10,0xC4, 0xFF,0x18,0xC5, 0xFF,0x73,0x8F, 
        0xFF,0xA5,0x55, 0xFF,0xB5,0x96, 0xFF,0x63,0x2D, 0xFF,0x10,0x83, 0xFF,0x00,0x22, 0xFF,0x4A,0x6A, 0xFF,0xCE,0x7A, 0xFF,0xBE,0x18, 0xFF,0x4A,0x6A, 0xFF,0x42,0x29, 0xFF,0x18,0xE5, 0xFF,0x29,0x66, 0xFF,0x42,0x29, 0xFF,0xA5,0x35, 0xFF,0x63,0x2D, 
        0xFF,0x31,0xA8, 0xFF,0x42,0x29, 0xFF,0x42,0x09, 0xFF,0x39,0xE9, 0xFF,0x9C,0xF4, 0xFF,0x7C,0x10, 0xFF,0x52,0xAB, 0xFF,0x8C,0x51, 0xFF,0xB5,0x96, 0xFF,0x84,0x31, 0xFF,0x21,0x26, 0xFF,0x08,0x43, 0xFF,0x94,0xD3, 0xFF,0x84,0x51, 0xFF,0x10,0x83, 
        0xFF,0x18,0xA4, 0xFF,0x63,0x2D, 0xFF,0x9C,0xF4, 0xFF,0x94,0x92, 0xFF,0x52,0xAB, 0xFF,0x42,0x29, 0xFF,0x00,0x22, 0xFF,0x39,0xE9, 0xFF,0x73,0x8F, 0xFF,0x10,0x83, 0xFF,0x31,0x87, 0xFF,0x94,0xD3, 0xFF,0x73,0xAF, 0xFF,0x18,0xE5, 0xFF,0x00,0x01, 
        0xFF,0x73,0x8E, 0xFF,0xBD,0xD7, 0xFF,0xA5,0x35, 0xFF,0x94,0xB3, 0xFF,0x52,0x8A, 0xFF,0x18,0xA3, 0xFF,0x31,0x87, 0xFF,0x21,0x05, 0xFF,0x4A,0x6A, 0xFF,0x63,0x2D, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x8C,0x52, 0xFF,0xE7,0x3C, 0xFF,0xF7,0x9E, 0xFF,0xEF,0x7D, 0xFF,0xF7,0xBE, 0xFF,0xBD,0xD7, 0xFF,0xCE,0x79, 0xFF,0xDF,0x1C, 0xFF,0xA5,0x55, 0xFF,0x4A,0x8B, 0xFF,0x21,0x05, 0xFF,0xB5,0xD7, 0xFF,0xA5,0x34, 0xFF,0x73,0x8F, 0xFF,0x08,0x43, 
        0xFF,0x31,0x85, 0xFF,0xAD,0x74, 0xFF,0xA5,0x1B, 0xFF,0xA4,0xDD, 0xFF,0x63,0x13, 0xFF,0x42,0x09, 0xFF,0x08,0x61, 0xFF,0x18,0xE4, 0xFF,0x39,0xC8, 0xFF,0xA5,0x14, 0xFF,0xD6,0x9A, 0xFF,0x9D,0x14, 0xFF,0x63,0x4D, 0xFF,0x00,0x22, 0xFF,0x4A,0x6A, 
        0xFF,0x21,0x45, 0xFF,0x4A,0x8A, 0xFF,0x73,0x8F, 0xFF,0x42,0x29, 0xFF,0x21,0x26, 0xFF,0x21,0x25, 0xFF,0x39,0xC8, 0xFF,0x8C,0x52, 0xFF,0xDE,0xBB, 0xFF,0xB5,0x96, 0xFF,0x94,0xB3, 0xFF,0x6B,0x4E, 0xFF,0x18,0xE5, 0xFF,0x18,0xC4, 0xFF,0x6B,0x6E, 
        0xFF,0xA5,0x35, 0xFF,0xC6,0x59, 0xFF,0x6B,0x6E, 0xFF,0x18,0xE5, 0xFF,0x08,0x83, 0xFF,0x4A,0x6A, 0xFF,0xCE,0x7A, 0xFF,0xBE,0x18, 0xFF,0x4A,0x6A, 0xFF,0x42,0x29, 0xFF,0x18,0xE5, 0xFF,0x29,0x66, 0xFF,0x42,0x49, 0xFF,0xA5,0x34, 0xFF,0x63,0x0D, 
        0xFF,0x39,0xC8, 0xFF,0x42,0x2A, 0xFF,0x42,0x29, 0xFF,0x3A,0x09, 0xFF,0xB5,0xB7, 0xFF,0x84,0x31, 0xFF,0x4A,0x6A, 0xFF,0x84,0x11, 0xFF,0xAD,0x55, 0xFF,0x84,0x10, 0xFF,0x29,0x67, 0xFF,0x10,0xA4, 0xFF,0x9C,0xF4, 0xFF,0x84,0x51, 0xFF,0x18,0xC4, 
        0xFF,0x21,0x05, 0xFF,0x63,0x0D, 0xFF,0xC6,0x38, 0xFF,0xBD,0xF8, 0xFF,0x6B,0x6E, 0xFF,0x42,0x2A, 0xFF,0x18,0xC4, 0xFF,0x4A,0x6A, 0xFF,0x5B,0x0D, 0xFF,0x08,0x62, 0xFF,0x94,0xD3, 0xFF,0xAD,0x56, 0xFF,0x73,0x8F, 0xFF,0x29,0x46, 0xFF,0x08,0x63, 
        0xFF,0x7B,0xD0, 0xFF,0xB5,0x96, 0xFF,0xB5,0x96, 0xFF,0xDE,0xDB, 0xFF,0x41,0xE8, 0xFF,0x18,0xC4, 0xFF,0x31,0xA8, 0xFF,0x21,0x05, 0xFF,0x52,0x8B, 0xFF,0x63,0x4E, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xF5,0x7C,0x10, 0x82,0x73,0xAF, 0x4C,0x5A,0xCC, 0x4A,0x52,0xAB, 0x33,0x42,0x29, 0x90,0x6B,0x4E, 0xFF,0xDF,0x1C, 0xFF,0xD6,0xDB, 0xFF,0xA5,0x14, 0xFF,0x52,0xAB, 0xFF,0x29,0x46, 0xFF,0xB5,0xD7, 0xFF,0xA5,0x34, 0xFF,0x6B,0x8E, 0xFF,0x08,0x63, 
        0xFF,0x31,0xC8, 0xFF,0xA5,0x34, 0xFF,0xD6,0xB9, 0xFF,0xBD,0xF9, 0xFF,0x3A,0x07, 0xFF,0x29,0x65, 0xFF,0x29,0x46, 0xFF,0x29,0x67, 0xFF,0x39,0xC8, 0xFF,0xA5,0x15, 0xFF,0xD6,0x9A, 0xFF,0x9D,0x14, 0xFF,0x63,0x4D, 0xFF,0x00,0x22, 0xFF,0x4A,0x6A, 
        0xFF,0x29,0x86, 0xFF,0x4A,0x49, 0xFF,0x73,0x8F, 0xFF,0x4A,0x6A, 0xFF,0x21,0x26, 0xFF,0x29,0x46, 0xFF,0x39,0xE8, 0xFF,0x8C,0x72, 0xFF,0xDE,0xBB, 0xFF,0xB5,0x96, 0xFF,0x94,0xB3, 0xFF,0x6B,0x6E, 0xFF,0x18,0xE5, 0xFF,0x18,0xC5, 0xFF,0x73,0x8F, 
        0xFF,0xA5,0x35, 0xFF,0xC6,0x18, 0xFF,0x6B,0x6E, 0xFF,0x21,0x05, 0xFF,0x08,0x83, 0xFF,0x4A,0x6A, 0xFF,0xCE,0x7A, 0xFF,0xBE,0x18, 0xFF,0x4A,0x6A, 0xFF,0x42,0x29, 0xFF,0x18,0xE5, 0xFF,0x29,0x66, 0xFF,0x42,0x29, 0xFF,0xAD,0x55, 0xFF,0x5A,0xED, 
        0xFF,0x29,0x46, 0xFF,0x39,0xE9, 0xFF,0x39,0xE8, 0xFA,0x39,0xC8, 0x92,0x63,0x0D, 0xDF,0x63,0x2D, 0xFF,0x4A,0x4A, 0xFF,0x7B,0xF0, 0xFF,0xAD,0x56, 0xFF,0x7C,0x10, 0xFF,0x29,0x67, 0xFF,0x18,0xA4, 0xFF,0x94,0xD3, 0xFF,0x84,0x31, 0xFF,0x18,0xC4, 
        0xFF,0x21,0x05, 0xFF,0x63,0x0D, 0xFF,0xB5,0xD7, 0xFF,0xAD,0x96, 0xFF,0x63,0x0D, 0xFF,0x42,0x29, 0xFF,0x18,0xC4, 0xFF,0x4A,0x4A, 0xFF,0x63,0x0D, 0xFF,0x10,0xA3, 0xFF,0x9D,0x14, 0xFF,0xAD,0x55, 0xFF,0x73,0x8F, 0xFF,0x29,0x46, 0xFF,0x10,0x83, 
        0xFF,0x7B,0xD0, 0xFF,0xB5,0x96, 0xFF,0xB5,0x76, 0xFF,0xC6,0x38, 0xFF,0x42,0x29, 0xFF,0x18,0xC4, 0xFF,0x31,0xA7, 0xFF,0x21,0x05, 0xFF,0x52,0x8B, 0xFF,0x6B,0x4E, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xD6,0x6B,0x4E, 0x00,0x00,0x21, 0x32,0x3A,0x09, 0x55,0x5A,0xEC, 0x2F,0x39,0xE8, 0x8B,0x7B,0xF0, 0xFF,0xDF,0x1C, 0xFF,0xB5,0x96, 0xFF,0x9C,0xF4, 0xFF,0x5A,0xCC, 0xFF,0x29,0x46, 0xFF,0xB5,0xD7, 0xFF,0xA5,0x34, 0xFF,0x73,0x8F, 0xFF,0x08,0x63, 
        0xFF,0x39,0xC8, 0xFF,0xA5,0x35, 0xFF,0xCE,0x79, 0xFF,0xBE,0x17, 0xFF,0x42,0x29, 0xFF,0x31,0xA7, 0xFF,0x21,0x26, 0xFF,0x29,0x67, 0xFF,0x39,0xC8, 0xFF,0xA5,0x15, 0xFF,0xD6,0x9A, 0xFF,0x9D,0x14, 0xFF,0x6B,0x4E, 0xFF,0x00,0x22, 0xFF,0x4A,0x6A, 
        0xFF,0x29,0x86, 0xFF,0x42,0x49, 0xFF,0x6B,0x6E, 0xFF,0x4A,0x6A, 0xFF,0x21,0x26, 0xFF,0x29,0x46, 0xFF,0x39,0xE8, 0xFF,0x8C,0x72, 0xFF,0xDE,0xDB, 0xFF,0xB5,0xB6, 0xFF,0x94,0xD3, 0xFF,0x6B,0x6E, 0xFF,0x18,0xE5, 0xFF,0x18,0xC5, 0xFF,0x73,0x8F, 
        0xFF,0xA5,0x35, 0xFF,0xC6,0x18, 0xFF,0x6B,0x6E, 0xFF,0x21,0x05, 0xFF,0x08,0x83, 0xFF,0x4A,0x6A, 0xFF,0xCE,0x7A, 0xFF,0xBE,0x18, 0xFF,0x4A,0x6A, 0xFF,0x42,0x29, 0xFF,0x18,0xE5, 0xFF,0x29,0x67, 0xFF,0x42,0x29, 0xFF,0xAD,0x76, 0xFF,0x84,0x31, 
        0xFF,0x18,0xC5, 0xFF,0x29,0x46, 0xFF,0x29,0x67, 0xF0,0x29,0x67, 0x0A,0x10,0x82, 0xB7,0x39,0xE8, 0xFF,0x4A,0x6B, 0xFF,0x9C,0xD4, 0xFF,0xAD,0x55, 0xFF,0x84,0x10, 0xFF,0x29,0x87, 0xFF,0x18,0xA4, 0xFF,0x94,0xD3, 0xFF,0x84,0x51, 0xFF,0x18,0xC4, 
        0xFF,0x21,0x05, 0xFF,0x63,0x0D, 0xFF,0xB5,0xD7, 0xFF,0xAD,0x96, 0xFF,0x63,0x0D, 0xFF,0x42,0x29, 0xFF,0x18,0xC4, 0xFF,0x4A,0x6A, 0xFF,0x63,0x2D, 0xFF,0x10,0xA3, 0xFF,0x94,0xD3, 0xFF,0xA5,0x55, 0xFF,0x73,0xAF, 0xFF,0x29,0x46, 0xFF,0x10,0x83, 
        0xFF,0x7B,0xD0, 0xFF,0xB5,0xB7, 0xFF,0xB5,0x96, 0xFF,0xC6,0x39, 0xFF,0x42,0x29, 0xFF,0x18,0xC4, 0xFF,0x31,0xA7, 0xFF,0x21,0x05, 0xFF,0x52,0xAB, 0xFF,0x6B,0x4E, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xCC,0x63,0x4E, 0x04,0x10,0xC4, 0xDA,0xA5,0x14, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xDF, 0xFF,0xE7,0x5D, 0xFF,0x94,0xD3, 0xFF,0x94,0xB3, 0xFF,0xAD,0x96, 0xF6,0x62,0xEC, 0xE8,0x21,0x25, 0xFF,0xB5,0xB6, 0xFF,0xAD,0x76, 0xFE,0x7B,0xF0, 0xE3,0x08,0x42, 
        0xF0,0x39,0xE8, 0xFF,0xB5,0xB7, 0xFF,0xCE,0x7A, 0xFF,0xBD,0xF7, 0xFF,0x4A,0x4A, 0xFF,0x39,0xC8, 0xE7,0x21,0x26, 0xED,0x31,0x87, 0xFF,0x39,0xE8, 0xFF,0xA5,0x15, 0xFF,0xCE,0x7A, 0xFF,0xAD,0x76, 0xF9,0x73,0xAF, 0xDE,0x00,0x01, 0xF0,0x4A,0x6A, 
        0xFF,0x29,0x86, 0xFF,0x39,0xE8, 0xFF,0x73,0x8F, 0xFF,0x52,0xAB, 0xE6,0x21,0x25, 0xEB,0x29,0x46, 0xFF,0x42,0x09, 0xFF,0x8C,0x72, 0xFF,0xDE,0xFB, 0xFF,0xBD,0xF8, 0xFF,0x9D,0x14, 0xFD,0x73,0xAF, 0xE5,0x18,0xC4, 0xF6,0x18,0xC5, 0xFF,0x7B,0xD0, 
        0xFF,0xA5,0x35, 0xFF,0xC6,0x39, 0xFF,0x73,0xCF, 0xF3,0x21,0x05, 0xDD,0x08,0x63, 0xF6,0x4A,0x6A, 0xFF,0xCE,0x7A, 0xFF,0xBE,0x18, 0xFF,0x52,0x8B, 0xFB,0x4A,0x4A, 0xE1,0x18,0xC4, 0xF3,0x31,0xA7, 0xFF,0x4A,0x4A, 0xFF,0x9C,0xF4, 0xFF,0xBD,0xD7, 
        0xFF,0x4A,0x4A, 0xFF,0x18,0xC5, 0xFF,0x31,0x87, 0xF3,0x29,0x67, 0x15,0x18,0xE5, 0xBA,0x31,0xA8, 0xFF,0x84,0x31, 0xFF,0xCE,0x79, 0xFF,0xA5,0x35, 0xFE,0x84,0x51, 0xE6,0x29,0x67, 0xF6,0x10,0xA4, 0xFF,0xAD,0x76, 0xFF,0x94,0xB2, 0xE9,0x18,0xC4, 
        0xEB,0x21,0x25, 0xFF,0x6B,0x4E, 0xFF,0xB5,0xD7, 0xFF,0xBD,0xF7, 0xFF,0x6B,0x8E, 0xFB,0x4A,0x4A, 0xDF,0x18,0xC4, 0xEE,0x4A,0x8B, 0xFF,0x6B,0x6E, 0xFF,0x08,0x83, 0xFF,0x94,0xB3, 0xFF,0xAD,0x76, 0xFF,0x84,0x11, 0xE8,0x21,0x26, 0xE5,0x08,0x63, 
        0xFF,0x84,0x31, 0xFF,0xC6,0x38, 0xFF,0xBD,0xD7, 0xFF,0xCE,0x59, 0xFF,0x42,0x29, 0xFF,0x18,0xE5, 0xEC,0x31,0xC8, 0xE6,0x18,0xE5, 0xFF,0x5A,0xCC, 0xFF,0x6B,0x6E, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xCD,0x6B,0x4E, 0x03,0x29,0x46, 0xD9,0x84,0x31, 0xFF,0x4A,0x4A, 0xFF,0x18,0xC4, 0xFF,0x5A,0xEC, 0xFF,0xA5,0x55, 0x7E,0x5A,0xCC, 0x68,0x5A,0xCC, 0x63,0x31,0xA8, 0x1C,0x10,0xA4, 0xFC,0xC6,0x38, 0xFC,0x9C,0xF4, 0x2F,0x21,0x26, 0x19,0x00,0x01, 
        0x0C,0x00,0x00, 0x90,0x63,0x4D, 0xFF,0xE7,0x5D, 0xFF,0xC6,0x39, 0xFD,0x4A,0x6A, 0x45,0x00,0x22, 0x11,0x08,0x42, 0x0B,0x00,0x01, 0x7A,0x18,0xC4, 0xFF,0xBD,0xD7, 0xFF,0xDE,0xFC, 0xC7,0x7B,0xD0, 0x23,0x18,0xE4, 0x1E,0x00,0x01, 0x1D,0x21,0x05, 
        0xD1,0x00,0x21, 0xFF,0x5A,0xEC, 0xFF,0x7B,0xF0, 0x49,0x10,0xA4, 0x11,0x08,0x42, 0x0D,0x00,0x01, 0x7B,0x21,0x26, 0xFF,0x94,0x92, 0xFF,0x9C,0xF4, 0x73,0x52,0xAB, 0x75,0x42,0x29, 0x89,0x3A,0x09, 0x19,0x08,0x63, 0x04,0x00,0x01, 0xBF,0x63,0x0D, 
        0xFF,0xB5,0xB7, 0xFF,0xCE,0x7A, 0xA7,0x52,0xCC, 0x1C,0x00,0x00, 0x18,0x00,0x01, 0x38,0x29,0x46, 0xF5,0xC6,0x38, 0xFF,0xCE,0x9A, 0xD8,0x42,0x29, 0x23,0x08,0x63, 0x1C,0x08,0x42, 0x13,0x00,0x01, 0xAB,0x31,0xA8, 0xFF,0xA5,0x35, 0xFF,0xBD,0xD7, 
        0xFF,0x84,0x31, 0xFF,0x21,0x05, 0xFF,0x29,0x67, 0xF3,0x29,0x67, 0x15,0x18,0xE5, 0xBA,0x42,0x29, 0xFF,0x6B,0x6E, 0x97,0x52,0xAB, 0x5C,0x4A,0x4A, 0x95,0x39,0xE9, 0x19,0x10,0xA4, 0x06,0x00,0x01, 0xDA,0x7C,0x10, 0xB5,0x5B,0x0C, 0x22,0x00,0x22, 
        0x00,0x00,0x01, 0x7B,0x39,0xE8, 0xFF,0xCE,0x79, 0xFF,0x94,0x92, 0xC2,0x42,0x49, 0x28,0x10,0xA4, 0x2C,0x00,0x22, 0x04,0x08,0x63, 0x7E,0x29,0x67, 0xFF,0x10,0xC4, 0xFF,0x94,0xB3, 0xFF,0xB5,0xD7, 0x56,0x21,0x46, 0x09,0x08,0x42, 0x2F,0x10,0x83, 
        0x7A,0x42,0x09, 0x5C,0x52,0x8B, 0xCB,0x52,0x8B, 0xFF,0x84,0x31, 0xFF,0x52,0xAB, 0x70,0x00,0x01, 0x0D,0x08,0x42, 0x11,0x00,0x22, 0x4F,0x29,0x46, 0xFF,0x6B,0x6E, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xD4,0x6B,0x6E, 0x00,0x29,0x67, 0x7A,0x18,0xC4, 0xAB,0x00,0x00, 0x8C,0x00,0x00, 0xD7,0x18,0xE4, 0xFF,0xA5,0x35, 0x62,0x4A,0x6A, 0x00,0x00,0x22, 0xA0,0x4A,0x8B, 0xF5,0x52,0xAB, 0xFF,0xB5,0x96, 0x25,0x29,0x66, 0x50,0x21,0x25, 0xFF,0x5A,0xCC, 
        0xD3,0x63,0x2D, 0x05,0x21,0x05, 0xC1,0x7B,0xF0, 0xFF,0xCE,0x7A, 0x39,0x29,0x87, 0x36,0x52,0xAB, 0xFF,0x73,0xAF, 0xEC,0x5A,0xCC, 0x03,0x29,0x67, 0xA7,0x73,0x8F, 0xFF,0xCE,0x9A, 0x06,0x18,0xE5, 0x8C,0x39,0xE8, 0xFF,0x39,0xE9, 0xB8,0x31,0xA7, 
        0xE0,0x5A,0xEC, 0xFF,0xB5,0xB7, 0x42,0x39,0xE8, 0x31,0x4A,0x6A, 0xFF,0x73,0xCF, 0xF5,0x4A,0x4A, 0x11,0x21,0x05, 0x97,0x73,0xAF, 0xFF,0xA5,0x35, 0x50,0x18,0xC4, 0x00,0x18,0xC4, 0xB6,0x39,0xE8, 0xFF,0x39,0xE7, 0x4E,0x5A,0xEC, 0x14,0x10,0x83, 
        0xFF,0x73,0x8E, 0xD7,0x4A,0x6A, 0x00,0x21,0x05, 0xC2,0x6B,0x6E, 0xFF,0x29,0x67, 0xB5,0x52,0xAB, 0xFB,0xDE,0xFB, 0xFF,0xC6,0x38, 0x11,0x10,0xA4, 0x73,0x6B,0x6E, 0xFF,0x6B,0x6E, 0xB8,0x39,0xA8, 0x08,0x18,0xC5, 0xD7,0x94,0xD3, 0xFF,0xC6,0x59, 
        0xFF,0xBE,0x18, 0xFF,0x4A,0x4A, 0xFF,0x18,0xE5, 0xF3,0x29,0x67, 0x15,0x18,0xE5, 0xBA,0x4A,0x6A, 0xFF,0x4A,0x6A, 0x8A,0x18,0xC4, 0x00,0x10,0x83, 0x98,0x52,0xAB, 0xFF,0x5A,0xCB, 0x65,0x5A,0xED, 0x00,0x00,0x01, 0x66,0x3A,0x09, 0xFF,0x21,0x25, 
        0xAC,0x31,0x87, 0x00,0x18,0xE5, 0xCD,0x84,0x31, 0xFF,0x5A,0xEC, 0xA7,0x21,0x25, 0x95,0x4A,0x8B, 0xFF,0x3A,0x09, 0xD4,0x6B,0x4E, 0x00,0x18,0xE5, 0xC4,0x63,0x0D, 0xFF,0xCE,0x7A, 0x60,0x52,0xAB, 0x05,0x18,0xE4, 0xE5,0x5A,0xEC, 0xFF,0x29,0x25, 
        0x5E,0x42,0x29, 0x00,0x00,0x01, 0xCC,0x21,0x46, 0xFF,0x7C,0x10, 0x73,0x42,0x49, 0x0D,0x31,0x87, 0xF6,0x5A,0xEC, 0xFF,0x73,0xAF, 0x26,0x42,0x4A, 0x5A,0x31,0xA7, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xD9,0x73,0x8F, 0x02,0x10,0xA4, 0x26,0x29,0x46, 0x2B,0x52,0xAB, 0x0D,0x4A,0x4A, 0xB2,0x4A,0x6A, 0xFF,0x9C,0xF4, 0x47,0x4A,0x4A, 0x28,0x29,0x46, 0xFF,0x94,0xD3, 0xFF,0x84,0x31, 0xA8,0x5A,0xCC, 0x03,0x08,0x42, 0xDC,0x7B,0xD0, 0xE8,0x9C,0xF4, 
        0xFF,0xB5,0xB7, 0x2E,0x31,0x67, 0x74,0x29,0x46, 0xF6,0x6B,0x8F, 0x00,0x10,0x83, 0xC3,0x8C,0x92, 0xF0,0xA5,0x14, 0xFF,0xB5,0x96, 0x45,0x42,0x09, 0x4A,0x08,0x62, 0xFF,0x84,0x51, 0x00,0x18,0xC4, 0x67,0x31,0xA8, 0xFF,0x94,0x93, 0xFF,0x8C,0x72, 
        0xFF,0xBD,0xF7, 0xD1,0x94,0x92, 0x01,0x08,0x63, 0xBF,0x8C,0x51, 0xF1,0xA5,0x15, 0xFF,0xAD,0x96, 0x51,0x42,0x29, 0x3B,0x18,0xC4, 0xFF,0x8C,0x72, 0x3D,0x29,0x46, 0x3C,0x42,0x29, 0xFF,0x9C,0xD3, 0xFF,0x73,0xAF, 0xCB,0x8C,0x92, 0x08,0x18,0xE4, 
        0xFB,0x8C,0x51, 0xE9,0x6B,0x6E, 0x00,0x08,0x43, 0x95,0x73,0xCF, 0xFF,0x8C,0x72, 0xFF,0x8C,0x92, 0xFF,0x94,0xD3, 0x85,0x31,0xA8, 0x10,0x21,0x26, 0xF3,0xA5,0x35, 0xE2,0x94,0xD3, 0xF7,0xA5,0x35, 0x19,0x21,0x25, 0x78,0x29,0x66, 0xFF,0x63,0x4E, 
        0xFF,0x63,0x2D, 0xFF,0x42,0x09, 0xFF,0x29,0x46, 0xF3,0x29,0x67, 0x15,0x18,0xE5, 0xBA,0x42,0x4A, 0xFF,0x52,0xAB, 0x75,0x21,0x05, 0x15,0x39,0xC8, 0xFF,0xBE,0x18, 0xFF,0x7C,0x10, 0xCB,0x7B,0xD0, 0x00,0x10,0x83, 0xCE,0x7B,0xF0, 0xFF,0x84,0x10, 
        0xFF,0x9C,0xF4, 0x19,0x29,0x66, 0x90,0x6B,0x4D, 0xFF,0xBD,0xD7, 0xFF,0x9C,0xF4, 0xFD,0x94,0xB3, 0xD1,0x6B,0x6E, 0xB1,0x73,0xAF, 0x00,0x18,0xE5, 0xA8,0x84,0x31, 0xFF,0xCE,0x59, 0x0F,0x08,0x63, 0xAF,0x94,0xD3, 0xFF,0x94,0xD3, 0xFF,0x31,0x87, 
        0xF3,0x8C,0x72, 0x15,0x21,0x05, 0xC6,0x42,0x09, 0xFF,0x7B,0xF0, 0x09,0x10,0xA4, 0x85,0x63,0x2D, 0xFF,0xAD,0x76, 0xFC,0xA5,0x55, 0x86,0x63,0x0D, 0x12,0x10,0xA3, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xCD,0x6B,0x4E, 0x01,0x10,0xA4, 0xD6,0x94,0xD3, 0xFF,0xF7,0xBE, 0xFF,0xE7,0x3C, 0xFF,0x8C,0x72, 0xFF,0x9C,0xD3, 0x41,0x39,0xE8, 0x4B,0x4A,0x6A, 0xFF,0xB5,0xB7, 0xFF,0x52,0xAB, 0x84,0x19,0x05, 0x00,0x21,0x05, 0x49,0x4A,0x6A, 0x31,0x39,0xC8, 
        0x39,0x31,0xA8, 0x11,0x18,0xE5, 0xB5,0x8C,0x92, 0xD3,0x94,0xB2, 0x00,0x08,0x42, 0x44,0x39,0xC8, 0x32,0x31,0xA7, 0x38,0x39,0xC8, 0x18,0x39,0xE9, 0x6B,0x29,0x67, 0xFF,0x52,0xAB, 0xD9,0x94,0x92, 0x22,0x29,0x67, 0x00,0x10,0x83, 0x81,0x52,0xAB, 
        0xFF,0xDF,0x1C, 0xB3,0x94,0x92, 0x00,0x08,0x63, 0x44,0x31,0xC8, 0x33,0x31,0xA8, 0x37,0x39,0xE8, 0x17,0x31,0xA7, 0x79,0x31,0xC8, 0xFF,0x73,0xAF, 0x3C,0x42,0x29, 0x5E,0x00,0x01, 0xFF,0x29,0x66, 0xFF,0x9D,0x14, 0xD4,0x7C,0x11, 0x0C,0x21,0x26, 
        0xDC,0xAD,0x76, 0xFF,0xEF,0x7D, 0xB7,0x73,0x8F, 0x08,0x08,0x63, 0x04,0x18,0xC4, 0xA9,0x73,0xAF, 0xFF,0x63,0x0C, 0x74,0x00,0x00, 0x00,0x29,0x46, 0x4A,0x39,0xE9, 0x32,0x31,0xA8, 0x39,0x39,0xE8, 0x16,0x31,0xC8, 0xA4,0x4A,0x4A, 0xFF,0x52,0xAB, 
        0xFF,0x52,0xAC, 0xFF,0x39,0xC8, 0xFF,0x29,0x46, 0xF3,0x29,0x67, 0x15,0x18,0xE5, 0xBA,0x42,0x4A, 0xFF,0x52,0xAB, 0x6E,0x29,0x87, 0x31,0x18,0xE5, 0xFF,0x39,0xE8, 0xFF,0x73,0x8F, 0xC9,0x73,0x8F, 0x15,0x18,0xE5, 0xE9,0x00,0x00, 0xFF,0x6B,0x6E, 
        0xFF,0xD6,0xBA, 0x1B,0x29,0x67, 0x8C,0x63,0x0D, 0xFF,0xC6,0x39, 0xA7,0x73,0xAF, 0x21,0x21,0x26, 0x53,0x42,0x09, 0x68,0x4A,0x4A, 0x00,0x21,0x05, 0xB7,0x6B,0x8E, 0xF6,0x8C,0x71, 0x0C,0x21,0x25, 0xE2,0x8C,0x72, 0xFF,0x9C,0xF4, 0xFF,0x6B,0x6E, 
        0xFF,0x52,0xCC, 0x29,0x21,0x26, 0xC8,0x4A,0x6A, 0xFF,0xA5,0x35, 0x0C,0x21,0x25, 0x2E,0x21,0x46, 0x3A,0x31,0xA8, 0x35,0x39,0xC8, 0x28,0x39,0xC8, 0x48,0x39,0xE9, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xCE,0x6B,0x4E, 0x00,0x21,0x05, 0xD4,0x6B,0x8F, 0xFF,0xAD,0x55, 0xFF,0xD6,0x9A, 0xFF,0x9C,0xF4, 0xFF,0xA5,0x35, 0x42,0x31,0xC8, 0x48,0x4A,0x6A, 0xFF,0xC6,0x18, 0xFF,0x9C,0xF4, 0x8A,0x52,0xAB, 0x0B,0x18,0xC4, 0xFF,0x94,0xB3, 0xFF,0x84,0x31, 
        0xFF,0x84,0x31, 0xFF,0x84,0x31, 0xFF,0x94,0xB2, 0xB1,0x4A,0x6A, 0x09,0x18,0xE4, 0xF2,0x9D,0x14, 0xFF,0x8C,0x92, 0xFF,0x7C,0x10, 0xFF,0x7B,0xF0, 0xFF,0x7C,0x10, 0xFF,0xAD,0x75, 0xFF,0x7B,0xF0, 0xFF,0x94,0xB3, 0xC8,0x7B,0xD0, 0x00,0x00,0x01, 
        0x9E,0x7B,0xD0, 0xE5,0x9D,0x14, 0x0E,0x10,0xA4, 0xED,0x9C,0xF3, 0xFF,0x8C,0x92, 0xFF,0x7B,0xF0, 0xFF,0x84,0x31, 0xFF,0xA5,0x55, 0xFF,0x94,0x93, 0x39,0x39,0xC8, 0x5C,0x00,0x00, 0xFF,0x00,0x21, 0xFF,0x8C,0x72, 0xD1,0x8C,0x51, 0x0B,0x21,0x25, 
        0xDD,0xA5,0x55, 0xFF,0xB5,0x96, 0xFF,0x8C,0x72, 0xFF,0x7C,0x10, 0x9D,0x52,0xAB, 0x00,0x10,0x84, 0xE3,0x73,0x8F, 0x92,0x29,0x66, 0x2A,0x39,0xC8, 0xFF,0xAD,0x76, 0xFF,0x84,0x31, 0xFF,0x7C,0x11, 0xFF,0x7C,0x10, 0xFF,0x94,0x92, 0xFF,0xA5,0x55, 
        0xFF,0x94,0xB3, 0xFF,0x39,0xC8, 0xFF,0x21,0x26, 0xF3,0x29,0x67, 0x15,0x18,0xE5, 0xBA,0x42,0x4A, 0xFF,0x52,0xAB, 0x6F,0x31,0xA7, 0x2E,0x10,0xA4, 0xFF,0x18,0xC5, 0xFF,0x63,0x2D, 0xC6,0x7C,0x10, 0x11,0x10,0xC4, 0xE9,0x00,0x00, 0xFF,0x52,0x8A, 
        0xFF,0xCE,0x59, 0x19,0x29,0x67, 0xA2,0x6B,0x8F, 0xFF,0x94,0xD3, 0x00,0x00,0x22, 0xAD,0x7B,0xF0, 0xFF,0xA5,0x35, 0xFF,0xB5,0xB7, 0x12,0x31,0xA8, 0xA2,0x63,0x4E, 0xFF,0xA5,0x35, 0x03,0x08,0x63, 0xC9,0x9C,0xD3, 0xFF,0xAD,0x76, 0xFF,0x6B,0x4E, 
        0xEF,0x63,0x2D, 0x10,0x18,0xC5, 0xCB,0x4A,0x4A, 0xFF,0x7C,0x10, 0x06,0x10,0x84, 0xAF,0x6B,0x6E, 0xFF,0xA5,0x35, 0xFF,0x7B,0xF0, 0xFF,0x7B,0xF0, 0xFF,0x84,0x31, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xCD,0x63,0x2D, 0x00,0x18,0xE5, 0xD3,0x73,0xAF, 0xFF,0x84,0x31, 0xFF,0x94,0xD3, 0xFF,0x9C,0xF4, 0xFF,0xA5,0x55, 0x40,0x31,0xA7, 0x47,0x42,0x09, 0xFF,0xBD,0xF8, 0xFF,0xBD,0xF7, 0xF1,0xA5,0x35, 0x01,0x18,0xC4, 0x72,0x10,0xA4, 0xFF,0x63,0x0D, 
        0xFF,0x73,0xAF, 0xAE,0x31,0x87, 0xEE,0x84,0x10, 0xFF,0x9D,0x14, 0x13,0x18,0xC4, 0x4E,0x31,0x87, 0xFF,0x84,0x31, 0xFF,0x5A,0xED, 0xAB,0x10,0xA3, 0xD7,0x29,0x25, 0xFC,0xBE,0x18, 0xB7,0x29,0x45, 0xFF,0x52,0x8B, 0xFF,0x7B,0xD0, 0x19,0x00,0x00, 
        0x68,0x4A,0x8A, 0xFF,0xB5,0xD7, 0x1C,0x21,0x05, 0x47,0x21,0x26, 0xFF,0x7B,0xF0, 0xFF,0x5A,0xEC, 0xAF,0x21,0x05, 0xD2,0xAD,0x76, 0xFF,0xA5,0x14, 0x35,0x31,0x87, 0x58,0x00,0x00, 0xFF,0x08,0x42, 0xFF,0x8C,0x72, 0xD0,0x84,0x31, 0x0A,0x21,0x26, 
        0xEB,0x9C,0xD4, 0xEE,0x5A,0xED, 0xB8,0x42,0x29, 0xFF,0x6B,0x8E, 0xF7,0x63,0x2D, 0x00,0x00,0x00, 0xB6,0x5A,0xEC, 0xFF,0xAD,0x76, 0x00,0x08,0x63, 0x91,0x42,0x29, 0xFF,0x84,0x10, 0xF8,0x5A,0xCC, 0xAC,0x21,0x05, 0xED,0x10,0xA3, 0xFF,0x18,0xC4, 
        0xFF,0x10,0xA3, 0xFF,0x21,0x26, 0xFF,0x29,0x67, 0xF1,0x29,0x46, 0x10,0x18,0xC4, 0xB9,0x42,0x29, 0xFF,0x4A,0x8B, 0x6C,0x29,0x67, 0x29,0x10,0xA4, 0xFF,0x21,0x26, 0xFF,0x63,0x2D, 0xC6,0x7B,0xD0, 0x0C,0x10,0xA4, 0xE6,0x00,0x00, 0xFF,0x52,0x8B, 
        0xFF,0xC6,0x59, 0x17,0x29,0x46, 0xA5,0x6B,0x4E, 0xFF,0xA5,0x14, 0x00,0x10,0xC4, 0xB1,0x6B,0x8E, 0xFF,0x73,0x8E, 0x8B,0x39,0xC8, 0x00,0x00,0x22, 0xAA,0x6B,0x6E, 0xFF,0xE7,0x3C, 0x2E,0x39,0xC8, 0x22,0x21,0x25, 0xFF,0x7B,0xD0, 0xFF,0x4A,0x4A, 
        0x5F,0x21,0x25, 0x00,0x18,0xE5, 0xD1,0x39,0xE8, 0xFF,0x73,0xAF, 0x49,0x29,0x46, 0x12,0x21,0x26, 0xFF,0x7B,0xD0, 0xFF,0x63,0x2D, 0xBE,0x29,0x46, 0xC0,0x39,0xC8, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xD4,0x6B,0x6E, 0x1F,0x29,0x26, 0xD8,0x7B,0xF0, 0xFF,0x94,0xB3, 0xFF,0x84,0x31, 0xFF,0x94,0xB3, 0xFF,0xAD,0x76, 0x5A,0x3A,0x09, 0x5F,0x4A,0x6A, 0xFF,0xC6,0x18, 0xFF,0xA5,0x14, 0xFF,0xBD,0xB7, 0xBE,0x6B,0x6E, 0x09,0x00,0x02, 0x19,0x21,0x46, 
        0x27,0x21,0x26, 0x44,0x29,0x67, 0xF2,0x94,0xD3, 0xFF,0xD6,0xBA, 0xD8,0x8C,0x72, 0x16,0x00,0x22, 0x14,0x29,0x46, 0x2B,0x29,0x87, 0x2D,0x10,0xA4, 0xE8,0x21,0x26, 0xFF,0xB5,0xB7, 0x37,0x31,0xC8, 0x16,0x21,0x05, 0x1A,0x21,0x05, 0x58,0x10,0xA4, 
        0xFF,0x29,0x66, 0xFF,0xAD,0x96, 0xDC,0x9D,0x14, 0x18,0x08,0x63, 0x12,0x21,0x25, 0x2C,0x21,0x46, 0x2D,0x21,0x05, 0xD9,0xBD,0xF7, 0xFF,0xAD,0x55, 0x51,0x39,0xE8, 0x6F,0x00,0x01, 0xFF,0x10,0xA4, 0xFF,0x94,0xB2, 0xD7,0x8C,0x72, 0x29,0x31,0xA8, 
        0xFD,0x9C,0xF4, 0xE5,0x42,0x4A, 0x17,0x10,0xA4, 0x26,0x29,0x87, 0x16,0x08,0x83, 0x76,0x42,0x29, 0xFF,0x94,0x92, 0xFF,0xCE,0x9A, 0xA8,0x6B,0x8E, 0x00,0x00,0x01, 0x23,0x29,0x67, 0x1F,0x21,0x05, 0x55,0x39,0xE8, 0xFF,0x7B,0xF0, 0xFF,0x7B,0xD0, 
        0xFF,0x73,0x8F, 0xFF,0x39,0xC8, 0xFF,0x31,0x87, 0xF4,0x31,0xA8, 0x31,0x21,0x26, 0xC2,0x4A,0x8B, 0xFF,0x5A,0xCC, 0x80,0x39,0xC8, 0x47,0x21,0x05, 0xFF,0x29,0x67, 0xFF,0x6B,0x6E, 0xCD,0x84,0x10, 0x2E,0x20,0xE5, 0xEB,0x00,0x00, 0xFF,0x5A,0xCC, 
        0xFF,0xCE,0x59, 0x37,0x31,0x87, 0x9F,0x73,0xAF, 0xFF,0xAD,0x76, 0x81,0x29,0x67, 0x00,0x10,0xA4, 0x27,0x18,0xE5, 0x84,0x4A,0x4A, 0x3B,0x39,0xC8, 0xA1,0x5B,0x0D, 0xFF,0xDE,0xFB, 0xEA,0x9D,0x14, 0x1E,0x00,0x22, 0x08,0x18,0xE5, 0x3B,0x21,0x26, 
        0x95,0x4A,0x4A, 0x32,0x39,0xC8, 0xB5,0x18,0xC4, 0xFF,0x7B,0xF0, 0xFE,0xAD,0x55, 0x3B,0x18,0xC4, 0x04,0x18,0xC5, 0x2E,0x29,0x67, 0x1C,0x21,0x26, 0xB6,0x39,0xC8, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x84,0x11, 0xFF,0x42,0x29, 0xFF,0x94,0x92, 0xFF,0xA5,0x34, 0xFF,0x9C,0xF4, 0xFF,0xA5,0x35, 0xFF,0xBD,0xB7, 0xFF,0x5A,0xCC, 0xFF,0x63,0x2D, 0xFF,0xCE,0x59, 0xFF,0xB5,0x96, 0xFF,0xAD,0x76, 0xFF,0x73,0xCF, 0xF9,0x6B,0x6E, 0xBB,0x84,0x31, 
        0xCB,0x63,0x0D, 0xFF,0x63,0x2D, 0xFF,0x9D,0x14, 0xFF,0xDE,0xDB, 0xFF,0xB5,0xD7, 0xFF,0x52,0xCB, 0xC3,0x6B,0x4E, 0xC2,0x84,0x31, 0xFC,0x6B,0x4E, 0xFF,0x29,0x86, 0xFF,0xA5,0x34, 0xF6,0x84,0x31, 0xB9,0x84,0x10, 0xCE,0x73,0xCF, 0xFF,0x4A,0x8B, 
        0xFF,0x21,0x25, 0xFF,0xB5,0xB7, 0xFF,0xBE,0x18, 0xFF,0x6B,0x4D, 0xC4,0x6B,0x4E, 0xC0,0x73,0x8F, 0xFB,0x84,0x31, 0xFF,0xD6,0x7A, 0xFF,0xAD,0x55, 0xFE,0x52,0xAC, 0xFE,0x20,0xE5, 0xFF,0x31,0xA8, 0xFF,0x9D,0x14, 0xFF,0x9C,0xF3, 0xFF,0x52,0x8B, 
        0xFF,0xA5,0x35, 0xFF,0x52,0xCB, 0xEE,0x52,0xAB, 0xB5,0x7B,0xF0, 0xDC,0x52,0xAB, 0xFF,0x94,0x92, 0xFF,0xDE,0xDB, 0xFF,0xD6,0xBB, 0xFF,0x94,0xD3, 0xF5,0x63,0x0D, 0xB7,0x73,0x8F, 0xD0,0x6B,0x6E, 0xFF,0x94,0xB2, 0xFF,0xEF,0x7D, 0xFF,0xEF,0x9D, 
        0xFF,0xDE,0xFB, 0xFF,0x5A,0xCC, 0xFF,0x4A,0x2A, 0xFF,0x52,0x8B, 0xFE,0x42,0x29, 0xFF,0x63,0x2D, 0xFF,0x73,0x8E, 0xFE,0x52,0xAB, 0xFE,0x39,0xE9, 0xFF,0x4A,0x4A, 0xFF,0x7C,0x10, 0xFF,0x94,0x92, 0xFE,0x39,0xE9, 0xFE,0x08,0x63, 0xFF,0x73,0x6E, 
        0xFF,0xD6,0x9A, 0xFF,0x4A,0x6B, 0xFF,0x8C,0x52, 0xFF,0xA5,0x14, 0xFF,0x42,0x29, 0xD8,0x73,0xAF, 0xC7,0x63,0x4D, 0xFF,0xA5,0x35, 0xFF,0x63,0x2D, 0xFF,0x7B,0xD0, 0xFF,0xC6,0x18, 0xFF,0xA5,0x34, 0xFF,0x73,0xAF, 0xCD,0x6B,0x4E, 0xF2,0x84,0x31, 
        0xF2,0x9C,0xF4, 0x18,0x18,0xE5, 0xC9,0x6B,0x4E, 0xFF,0xA5,0x35, 0xFF,0xBE,0x18, 0xFF,0x5A,0xCC, 0xD2,0x63,0x2D, 0xB6,0x7B,0xF0, 0xF1,0x94,0x93, 0xFF,0x52,0x8B, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x7B,0xF0, 0xFF,0x42,0x09, 0xFF,0x8C,0x72, 0xFF,0xA5,0x14, 0xFF,0x9C,0xF4, 0xFF,0xA5,0x35, 0xFF,0xB5,0xB7, 0xFF,0x52,0xAC, 0xFF,0x63,0x0D, 0xFF,0xC6,0x59, 0xFF,0xAD,0x76, 0xFF,0xAD,0x76, 0xFF,0x6B,0x4E, 0xFF,0x6B,0x4E, 0xFF,0xA5,0x14, 
        0xFF,0x73,0xCF, 0xFF,0x5A,0xCC, 0xFF,0x9C,0xD4, 0xFF,0xD6,0xBA, 0xFF,0xA5,0x34, 0xFF,0x52,0x8B, 0xFF,0x84,0x31, 0xFF,0x9D,0x14, 0xFF,0x63,0x2D, 0xFF,0x29,0x46, 0xFF,0xA5,0x14, 0xFF,0x84,0x31, 0xFF,0x9D,0x14, 0xFF,0x8C,0x72, 0xFF,0x42,0x29, 
        0xFF,0x29,0x46, 0xFF,0xB5,0xB6, 0xFF,0xAD,0x96, 0xFF,0x63,0x0D, 0xFF,0x84,0x31, 0xFF,0x8C,0x72, 0xFF,0x7B,0xF0, 0xFF,0xC6,0x39, 0xFF,0xAD,0x55, 0xFF,0x52,0xAB, 0xFF,0x18,0xE5, 0xFF,0x31,0x87, 0xFF,0x9D,0x14, 0xFF,0x94,0xF3, 0xFF,0x4A,0x8A, 
        0xFF,0xA5,0x34, 0xFF,0x52,0x8B, 0xFF,0x5A,0xCC, 0xFF,0x9C,0xF4, 0xFF,0x63,0x2D, 0xFF,0x73,0xCF, 0xFF,0xC6,0x18, 0xFF,0xCE,0x9A, 0xFF,0x84,0x51, 0xFF,0x63,0x0D, 0xFF,0x94,0xB3, 0xFF,0x84,0x31, 0xFF,0x84,0x11, 0xFF,0xCE,0x79, 0xFF,0xCE,0x9A, 
        0xFF,0xBE,0x18, 0xFF,0x52,0xAC, 0xFF,0x4A,0x2A, 0xFF,0x4A,0x6B, 0xFF,0x42,0x09, 0xFF,0x63,0x2D, 0xFF,0x73,0x8E, 0xFF,0x52,0xAB, 0xFF,0x39,0xE9, 0xFF,0x4A,0x4A, 0xFF,0x7B,0xF0, 0xFF,0x8C,0x92, 0xFF,0x39,0xC8, 0xFF,0x08,0x43, 0xFF,0x6B,0x6E, 
        0xFF,0xD6,0x9A, 0xFF,0x4A,0x6A, 0xFF,0x8C,0x52, 0xFF,0xA5,0x15, 0xFF,0x39,0xE9, 0xFF,0x8C,0x51, 0xFF,0x84,0x10, 0xFF,0x94,0xB3, 0xFF,0x5A,0xCC, 0xFF,0x63,0x0D, 0xFF,0x9C,0xF4, 0xB8,0x6B,0x6E, 0xD1,0x63,0x2D, 0xFF,0x94,0x92, 0xFF,0x7B,0xF0, 
        0x32,0x29,0x67, 0x32,0x29,0x66, 0xFF,0xAD,0x96, 0xFF,0xA5,0x35, 0xFF,0x9C,0xD3, 0xFF,0x52,0xAB, 0xFF,0x73,0xAF, 0xFF,0xA5,0x14, 0xFF,0x94,0x92, 0xFF,0x4A,0x4A, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,
  0xFF,0x7B,0xF0, 0xFF,0x42,0x09, 0xFF,0x8C,0x72, 0xFF,0xA5,0x14, 0xFF,0x9C,0xF4, 0xFF,0xA5,0x35, 0xFF,0xB5,0xB7, 0xFF,0x52,0xAC, 0xFF,0x63,0x0D, 0xFF,0xC6,0x59, 0xFF,0xAD,0x76, 0xFF,0xAD,0x76, 0xFF,0x6B,0x4E, 0xFF,0x63,0x2D, 0xFF,0x94,0xD3, 
        0xFF,0x73,0x8F, 0xFF,0x5A,0xCC, 0xFF,0x9C,0xD4, 0xFF,0xD6,0xBA, 0xFF,0xA5,0x35, 0xFF,0x4A,0x8A, 0xFF,0x7B,0xF0, 0xFF,0x94,0xB3, 0xFF,0x63,0x0D, 0xFF,0x29,0x46, 0xFF,0xA5,0x34, 0xFF,0x84,0x11, 0xFF,0x94,0xB3, 0xFF,0x84,0x31, 0xFF,0x42,0x29, 
        0xFF,0x29,0x46, 0xFF,0xB5,0xB6, 0xFF,0xAD,0x96, 0xFF,0x5A,0xEC, 0xFF,0x7B,0xF0, 0xFF,0x84,0x31, 0xFF,0x7B,0xD0, 0xFF,0xCE,0x39, 0xFF,0xAD,0x55, 0xFF,0x52,0xAB, 0xFF,0x18,0xC5, 0xFF,0x31,0x87, 0xFF,0x9D,0x14, 0xFF,0x94,0xD3, 0xFF,0x4A,0x6A, 
        0xFF,0xA5,0x34, 0xFF,0x52,0xAB, 0xFF,0x52,0xAB, 0xFF,0x94,0xB3, 0xFF,0x5B,0x0C, 0xFF,0x7B,0xD0, 0xFF,0xC6,0x18, 0xFF,0xCE,0x9A, 0xFF,0x84,0x51, 0xFF,0x5A,0xEC, 0xFF,0x8C,0x52, 0xFF,0x7B,0xF0, 0xFF,0x84,0x10, 0xFF,0xCE,0x7A, 0xFF,0xCE,0x9A, 
        0xFF,0xBE,0x18, 0xFF,0x52,0xAB, 0xFF,0x42,0x2A, 0xFF,0x4A,0x6B, 0xFF,0x42,0x09, 0xFF,0x63,0x2D, 0xFF,0x73,0x8E, 0xFF,0x52,0x8B, 0xFF,0x39,0xE9, 0xFF,0x4A,0x2A, 0xFF,0x7B,0xF0, 0xFF,0x8C,0x92, 0xFF,0x39,0xC8, 0xFF,0x08,0x42, 0xFF,0x6B,0x6E, 
        0xFF,0xD6,0x9A, 0xFF,0x4A,0x6A, 0xFF,0x8C,0x51, 0xFF,0xA5,0x15, 0xFF,0x39,0xE9, 0xFF,0x7C,0x10, 0xFF,0x73,0xCF, 0xFF,0x8C,0x51, 0xFF,0x73,0xCF, 0xFF,0x73,0xCF, 0xFF,0x9C,0xF4, 0x86,0x4A,0x8B, 0x23,0x18,0xE5, 0x58,0x4A,0x4A, 0x36,0x21,0x26, 
        0x39,0x18,0xE5, 0xE9,0x8C,0x72, 0xFF,0xA5,0x14, 0xFF,0x94,0xB3, 0xFF,0x94,0xB3, 0xFF,0x52,0xAB, 0xFF,0x6B,0x8E, 0xFF,0x94,0xB3, 0xFF,0x8C,0x72, 0xFF,0x4A,0x4A, 0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF
};

GUI_CONST_STORAGE GUI_BITMAP bmLogo = {
  102, // xSize
  38, // ySize
  306, // BytesPerLine
  16, // BitsPerPixel
  (unsigned char *)_acLogo,  // Pointer to picture data
  NULL,  // Pointer to palette
  GUI_DRAW_BMPA565
};

/*********************************************************************
*
*       Defines
*
**********************************************************************
*/

#define ID_WINDOW_0			(GUI_ID_USER + 0x00)
#define ID_TEXT_0				(GUI_ID_USER + 0x01)
#define ID_DROPDOWN_0		(GUI_ID_USER + 0x02)
#define ID_TEXT_1				(GUI_ID_USER + 0x03)
#define ID_TEXT_2				(GUI_ID_USER + 0x04)
#define ID_TEXT_3				(GUI_ID_USER + 0x05)
#define ID_TEXT_4				(GUI_ID_USER + 0x06)
#define ID_TEXT_5				(GUI_ID_USER + 0x07)
#define ID_TEXT_6				(GUI_ID_USER + 0x08)
#define ID_TEXT_7				(GUI_ID_USER + 0x09)
#define ID_TEXT_8				(GUI_ID_USER + 0x0A)
#define ID_TEXT_9				(GUI_ID_USER + 0x0B)
#define ID_TEXT_10      (GUI_ID_USER + 0x0C)
#define ID_TEXT_11      (GUI_ID_USER + 0x0D)
#define ID_TEXT_12      (GUI_ID_USER + 0x0E)
#define ID_EDIT_0				(GUI_ID_USER + 0x0F)
#define ID_EDIT_1				(GUI_ID_USER + 0x10)
#define ID_EDIT_2				(GUI_ID_USER + 0x11)
#define ID_TEXT_13      (GUI_ID_USER + 0x12)
#define ID_TEXT_14			(GUI_ID_USER + 0x13)
#define ID_TEXT_15			(GUI_ID_USER + 0x14)
#define ID_DROPDOWN_1		(GUI_ID_USER + 0x15)   
#define ID_DROPDOWN_2		(GUI_ID_USER + 0x16)

#define ID_TEXT_16			(GUI_ID_USER + 0x17)   
#define ID_TEXT_17			(GUI_ID_USER + 0x18)   
#define ID_TEXT_18			(GUI_ID_USER + 0x19)   
#define ID_TEXT_19			(GUI_ID_USER + 0x1A)   
#define ID_TEXT_20			(GUI_ID_USER + 0x1B)   
#define ID_TEXT_21			(GUI_ID_USER + 0x1C)
#define ID_TEXT_22			(GUI_ID_USER + 0x1D)
#define ID_TEXT_23			(GUI_ID_USER + 0x1E)
#define ID_EDIT_3				(GUI_ID_USER + 0x1F)
#define ID_EDIT_4				(GUI_ID_USER + 0x20)
#define ID_EDIT_5				(GUI_ID_USER + 0x21)
#define ID_EDIT_6				(GUI_ID_USER + 0x22)
#define ID_EDIT_7				(GUI_ID_USER + 0x23)
#define ID_EDIT_8				(GUI_ID_USER + 0x24)
#define ID_TEXT_24			(GUI_ID_USER + 0x25)
#define ID_TEXT_25			(GUI_ID_USER + 0x26)
#define ID_EDIT_9				(GUI_ID_USER + 0x27)
#define ID_EDIT_10			(GUI_ID_USER + 0x28)
#define ID_EDIT_11			(GUI_ID_USER + 0x29)
#define ID_EDIT_12			(GUI_ID_USER + 0x2A)
#define ID_EDIT_13			(GUI_ID_USER + 0x2B)
#define ID_EDIT_14			(GUI_ID_USER + 0x2C)

#define ID_TEXT_26			(GUI_ID_USER + 0x2D)
#define ID_TEXT_27			(GUI_ID_USER + 0x2E)
#define ID_TEXT_28			(GUI_ID_USER + 0x2F)
#define ID_TEXT_29			(GUI_ID_USER + 0x30)
#define ID_LISTVIEW_0		(GUI_ID_USER + 0x31)
#define ID_BUTTON_0			(GUI_ID_USER + 0x32)
#define ID_BUTTON_1			(GUI_ID_USER + 0x33)

#define WM_LIMIT (WM_USER + 0x00)


/*********************************************************************
*
*       Static data
*
**********************************************************************
*/

/*********************************************************************
*
*       _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {	
	{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 800, 480, 0, 0x0, 0 },
	{ TEXT_CreateIndirect, "Text", ID_TEXT_0, 233, 5, 309, 38, 0, 0x64, 0 },
	{ DROPDOWN_CreateIndirect, "Dropdown", ID_DROPDOWN_0, 380, 45, 156, 29, 0, 0x0, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_1, 240, 46, 140, 28, 0, 0x64, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_0, 480, 90, 100, 28, 0, 0x0, 0 },	
  { TEXT_CreateIndirect, "Text", ID_TEXT_2, 480, 125, 110, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_3, 480, 160, 110, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_4, 480, 195, 110, 28, 0, 0x64, 0 },

  { TEXT_CreateIndirect, "Text", ID_TEXT_5, 480, 230, 110, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_6, 480, 265, 110, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_7, 480, 300, 160, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_8, 480, 335, 110, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_9, 480, 370, 110, 28, 0, 0x64, 0 },

  { TEXT_CreateIndirect, "Text", ID_TEXT_10, 620, 125, 100, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_11, 620, 160, 100, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_12, 620, 195, 100, 28, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_0, 620, 230, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_1, 620, 265, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_2, 620, 300, 60, 20, 0, 0x64, 0 },

  { TEXT_CreateIndirect, "Text", ID_TEXT_13, 690, 226, 40, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_14, 690, 261, 40, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_15, 690, 296, 40, 28, 0, 0x64, 0 },
  { DROPDOWN_CreateIndirect, "Dropdown", ID_DROPDOWN_1, 620, 335, 100, 20, 0, 0x0, 0 },
  { DROPDOWN_CreateIndirect, "Dropdown", ID_DROPDOWN_2, 620, 370, 100, 20, 0, 0x0, 0 },
  
  { TEXT_CreateIndirect, "Text", ID_TEXT_16, 80, 80, 100, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_17, 200, 80, 100, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_18, 317, 80, 100, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_19, 75, 160, 110, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_20, 195, 160, 110, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_21, 315, 160, 110, 28, 0, 0x64, 0 },

  { TEXT_CreateIndirect, "Text", ID_TEXT_22, 40, 102, 30, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_23, 40, 132, 30, 28, 0, 0x64, 0 },  
  { EDIT_CreateIndirect, "Edit", ID_EDIT_3, 80, 105, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_4, 80, 135, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_5, 200, 105, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_6, 200, 135, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_7, 320, 105, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_8, 320, 135, 60, 20, 0, 0x64, 0 },

  { TEXT_CreateIndirect, "Text", ID_TEXT_24, 40, 182, 30, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_25, 40, 212, 30, 28, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_9, 80, 185, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_10, 80, 215, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_11, 200, 185, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_12, 200, 215, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_13, 320, 185, 60, 20, 0, 0x64, 0 },
  { EDIT_CreateIndirect, "Edit", ID_EDIT_14, 320, 215, 60, 20, 0, 0x64, 0 },
  
  { TEXT_CreateIndirect, "Text", ID_TEXT_26, 410, 102, 30, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_27, 410, 132, 30, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_28, 410, 182, 30, 28, 0, 0x64, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_29, 410, 212, 30, 28, 0, 0x64, 0 },

  { LISTVIEW_CreateIndirect, "Listview", ID_LISTVIEW_0, 20, 250, 425, 212, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_1, 480, 405, 100, 28, 0, 0x0, 0 },
};

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
unsigned int getChData(char dataNum)
{	
	unsigned int datatmp=0;
	switch(dataNum)
	{
		case 0:
			datatmp = cfg_data_tmp.ch_data1;
		break;
		case 1:
			datatmp = cfg_data_tmp.ch_data2;
		break;
		case 2:
			datatmp = cfg_data_tmp.ch_data3;
		break;
		case 3:
			datatmp = cfg_data_tmp.ch_data4;
		break;
		case 4:
			datatmp = cfg_data_tmp.ch_data5;
		break;
		case 5:
			datatmp = cfg_data_tmp.ch_data6;
		break;
		case 6:
			datatmp = cfg_data_tmp.ch_data7;
		break;
		case 7:
			datatmp = cfg_data_tmp.ch_data8;
		break;
		
		case 8:
			datatmp = cfg_data_tmp.ch_data9;
		break;
		case 9:
			datatmp = cfg_data_tmp.ch_data10;
		break;
		case 10:
			datatmp = cfg_data_tmp.ch_data11;
		break;
		case 11:
			datatmp = cfg_data_tmp.ch_data12;
		break;
		case 12:
			datatmp = cfg_data_tmp.ch_data13;
		break;
		case 13:
			datatmp = cfg_data_tmp.ch_data14;
		break;
		case 14:
			datatmp = cfg_data_tmp.ch_data15;
		break;
		case 15:
			datatmp = cfg_data_tmp.ch_data16;
		break;
	}
	return datatmp;
}

static void calculateChData(WM_HWIN hItem,char ch_num)
{
  char    i,j;
//  char    NumRows;
  char * apText[6];
  char   acText[6][10] = {0};
	unsigned int datatmp=0;
	char flag;
	
	char type = 0;
	char level = 0;
	unsigned short hl_time =0;
	float voltage =0;
//	char loopNum = 0;
	char rep_times =0;
	char lp_addr = 0;
	
	if(ch_num<24)
		flag = 0;
	else
		flag = 1;
	
	for(i=0;i<16;i++)
	{
		datatmp = getChData(i);
		if(datatmp==0)
			break;
		else //if((datatmp==1) && (flag==0))
		{
			type = datatmp >> 31;
			if(type==0)
			{
				if(flag==0){
					level = (datatmp >> 30)  & 0x01;
					hl_time = datatmp & 0xffff;
				}
				else{
					hl_time = (datatmp >> 15)  & 0xffff;
					voltage = (datatmp & 0x7fff)/100-31;
				}
			}else{
//				loopNum = (datatmp >> 20)  & 0x07;
				lp_addr = (datatmp >> 16)  & 0x0f;
				rep_times = datatmp & 0x03ff;
			}
			
			memset(acText,0,sizeof(acText));
//			NumRows = LISTVIEW_GetNumRows(hItem);
			sprintf(acText[0],"%d",i);
			if(type){
				strcpy(acText[1],"Loop");
				sprintf(acText[4],"%d",lp_addr);
				sprintf(acText[5],"%d",rep_times);
			}
			else{
				strcpy(acText[1],"SetV");
				if(flag)
					sprintf(acText[2],"%.2f",voltage);
				else{
//					getZuValue(ch_num,&levelH,&levelL);
//					if(level)
						sprintf(acText[2],"%d",level);
//					else
//						sprintf(acText[2],"%.2f",levelL);
				}
				sprintf(acText[3],"%d",hl_time);
			}

			for (j = 0; j < 6; j++) {
				apText[j] = acText[j];
			}
			LISTVIEW_AddRow(hItem, (const GUI_ConstString *)apText);
		}
	}
}

struct _CONFIG_CHANNEL_ getChannel(char chNum)
{
	struct _CONFIG_CHANNEL_ cfgChTemp;
	switch(chNum)
		{
			case 0:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch1;
				break;
			case 1:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch2;
				break;
			case 2:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch3;
				break;
			case 3:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch4;
				break;			
			case 4:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch5;
				break;
			case 5:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch6;
				break;
			case 6:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch7;
				break;
			case 7:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch8;
				break;			
			case 8:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch9;
				break;
			case 9:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch10;
				break;
			
			case 10:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch11;
				break;			
			case 11:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch12;
				break;			
			case 12:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch13;
				break;
			case 13:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch14;
				break;
			case 14:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch15;
				break;
			case 15:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch16;
				break;			
			case 16:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch17;
				break;
			case 17:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch18;
				break;
			case 18:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch19;
				break;
			case 19:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch20;
				break;
			
			case 20:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch21;
				break;			
			case 21:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch22;
				break;
			case 22:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch23;
				break;
			case 23:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch24;
				break;
			case 24:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch25;
				break;
			case 25:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch26;
				break;			
			case 26:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch27;
				break;
			case 27:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch28;
				break;
			case 28:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch29;
				break;
			case 29:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch30;
				break;
			
			case 30:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch31;
				break;			
			case 31:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch32;
				break;
			case 32:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch33;
				break;
			case 33:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch34;
				break;
			case 34:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch35;
				break;
			case 35:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch36;
				break;			
			case 36:
				cfgChTemp = cfg_para.cfg_ch.cfg_ch37;
				break;
		}
		return cfgChTemp;
}

static void addRow(WM_HWIN hItem) 
{
	cfg_ch_tmp = getChannel(channel_num);
	cfg_data_tmp = cfg_ch_tmp.cfg_data;
	calculateChData(hItem,channel_num);
}

static void saveChData(unsigned int data,char num)
{
	switch(num) 
	{
		case 0:
			cfg_data_tmp.ch_data1 = data;
			break;
		case 1:
			cfg_data_tmp.ch_data2 = data;
			break;
		case 2:
			cfg_data_tmp.ch_data3 = data;
			break;
		case 3:
			cfg_data_tmp.ch_data4 = data;
			break;
		case 4:
			cfg_data_tmp.ch_data5 = data;
			break;
		case 5:
			cfg_data_tmp.ch_data6 = data;
			break;
		case 6:
			cfg_data_tmp.ch_data7 = data;
			break;
		case 7:
			cfg_data_tmp.ch_data8 = data;
			break;
		
		case 8:
			cfg_data_tmp.ch_data9 = data;
			break;
		case 9:
			cfg_data_tmp.ch_data10 = data;
			break;
		case 10:
			cfg_data_tmp.ch_data11 = data;
			break;
		case 11:
			cfg_data_tmp.ch_data12 = data;
			break;
		case 12:
			cfg_data_tmp.ch_data13 = data;
			break;
		case 13:
			cfg_data_tmp.ch_data14 = data;
			break;
		case 14:
			cfg_data_tmp.ch_data15 = data;
			break;
		case 15:
			cfg_data_tmp.ch_data16 = data;
			break;
	}
}

static void zuheSetV(char type,short level,short hl_time,char num,char flag)
{
	unsigned int temp=0;
	if(flag==0)
		temp = type<<31 | level<<30 | hl_time;
	else
		temp = type<<31 | level<<15 | hl_time;
	saveChData(temp,num);
}

static void zuheLoop(char type,char loopnum,char lp_addr,char rep_times,char num)
{
	unsigned int temp=0;
	temp = type<<31 | (loopnum-1)<<20 | lp_addr<<16 | rep_times;
	saveChData(temp,num);
}

static void saveData(WM_HWIN hItem)
{
	char rowNum=0,i;
	char buf[10];
	char ch_flag;
	
	char type = 0;
	char level = 0;
	unsigned short hl_time =0;
	float voltage =0;
	char loopNum = 0;
	char rep_times =0;
	char lp_addr = 0;
	
	loopNum = 0;
	memset(&cfg_data_tmp,0,sizeof(cfg_data_tmp));
	
	rowNum = LISTVIEW_GetNumRows(hItem);
	for(i=0;i<rowNum;i++)
	{
		LISTVIEW_GetItemText(hItem,1,i,buf,10);
		if(strcmp(buf,"SetV")==0)
		{
			if(channel_num<24)
			{
				type = 0;
				LISTVIEW_GetItemText(hItem,2,i,buf,10);
				level = atoi(buf);
				LISTVIEW_GetItemText(hItem,3,i,buf,10);
				hl_time = atoi(buf);
				ch_flag = 0;
				zuheSetV(type,level,hl_time,i,ch_flag);
			}else{
				type = 0;
				LISTVIEW_GetItemText(hItem,2,i,buf,10);
				voltage = atof(buf);
				LISTVIEW_GetItemText(hItem,3,i,buf,10);
				hl_time = atoi(buf);
				ch_flag = 1;
				zuheSetV(type,(voltage+31)*100,hl_time,i,ch_flag);
			}
		}
		else
		{
			type = 1;
			LISTVIEW_GetItemText(hItem,4,i,buf,10);
			lp_addr = atoi(buf);
			LISTVIEW_GetItemText(hItem,5,i,buf,10);
			rep_times = atoi(buf);
			loopNum++;
			zuheLoop(type,loopNum,lp_addr,rep_times,i);
		}
	}
	cfg_ch_tmp.cfg_data = cfg_data_tmp;
	chSave(channel_num);
}

static void saveZU(WM_MESSAGE * pMsg)
{
	WM_HWIN hItem;
	float hl_temp;
  int   hlValTemp;
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = hl_temp*100;
	if(hlValTemp != cfg_para.voltage)
		cfg_para.voltage = hlValTemp;
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_1);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = hl_temp*100;
	if(hlValTemp != cfg_para.current)
		cfg_para.current = hlValTemp;
			
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_3);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu1_h)
		cfg_para.cfg_ch_zu.ch_zu1_h = hlValTemp;
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_4);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu1_l)
		cfg_para.cfg_ch_zu.ch_zu1_l = hlValTemp;
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_5);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu2_h)
		cfg_para.cfg_ch_zu.ch_zu2_h = hlValTemp;
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_6);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu2_l)
		cfg_para.cfg_ch_zu.ch_zu2_l = hlValTemp;
			
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_7);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu3_h)
		cfg_para.cfg_ch_zu.ch_zu3_h = hlValTemp;
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_8);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu3_l)
		cfg_para.cfg_ch_zu.ch_zu3_l = hlValTemp;
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_9);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu4_h)
		cfg_para.cfg_ch_zu.ch_zu4_h = hlValTemp;
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_10);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu4_l)
		cfg_para.cfg_ch_zu.ch_zu4_l = hlValTemp;
			
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_11);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu5_h)
		cfg_para.cfg_ch_zu.ch_zu5_h = hlValTemp;
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_12);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu5_l)
		cfg_para.cfg_ch_zu.ch_zu5_l = hlValTemp;
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_13);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu6_h)
		cfg_para.cfg_ch_zu.ch_zu6_h = hlValTemp;
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_14);
	hl_temp = EDIT_GetFloatValue(hItem);
	hlValTemp = (hl_temp+31)*100;
	if(hlValTemp != cfg_para.cfg_ch_zu.ch_zu6_l)
		cfg_para.cfg_ch_zu.ch_zu6_l = hlValTemp;
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_2);
	hlValTemp = EDIT_GetFloatValue(hItem);
	if(hlValTemp != cfg_para.totalTime)
		cfg_para.totalTime = hlValTemp;
}

static void refreshZU(WM_MESSAGE * pMsg)
{
	WM_HWIN hItem;
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_3);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu1_h/100-31,-20,20,2,2);		
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_4);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu1_l/100-31,-20,20,2,2);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_5);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu2_h/100-31,-20,20,2,2);		
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_6);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu2_l/100-31,-20,20,2,2);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_7);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu3_h/100-31,-20,20,2,2);		
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_8);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu3_l/100-31,-20,20,2,2);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_9);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu4_h/100-31,-20,20,2,2);		
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_10);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu4_l/100-31,-20,20,2,2);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_11);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu5_h/100-31,-20,20,2,2);		
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_12);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu5_l/100-31,-20,20,2,2);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_13);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu6_h/100-31,-20,20,2,2);		
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_14);
	EDIT_SetFloatMode(hItem,(float)cfg_para.cfg_ch_zu.ch_zu6_l/100-31,-20,20,2,2);
}

static void _cbList(WM_MESSAGE * pMsg) {
  int NCode;

  switch (pMsg->MsgId) {
  case WM_NOTIFY_PARENT:
    NCode = pMsg->Data.v;
    if (NCode == WM_NOTIFICATION_CHILD_DELETED) {
      WM_SendMessage(WM_GetParent(pMsg->hWin), pMsg);
      break;
    }
    LISTVIEW_Callback(pMsg);
    break;
  default:
    LISTVIEW_Callback(pMsg);
  }
}

char setflag = 0;
static void _cbCellEdit(WM_MESSAGE * pMsg) {
  CELL_EDIT_ORG   CellEditOrg;
  WM_KEY_INFO   * pKeyInfo;
  WM_HWIN         hList;
  char            acText[LEN_ITEM_TEXT];
//  char i,pos=0;
//  char mylen=0;
//  int     NCode;
  WM_MESSAGE Message;
//  char posflag = 0;
//  char position = 0;

  switch (pMsg->MsgId) {
  case WM_KEY:
    pKeyInfo = (WM_KEY_INFO *)pMsg->Data.p;
    if (pKeyInfo->PressedCnt == 0) {
      if (pKeyInfo->Key == GUI_KEY_ENTER) {
        WM_SetFocus(WM_GetParent(pMsg->hWin));
        WM_DeleteWindow(pMsg->hWin);
        break;
      }
    }
    EDIT_Callback(pMsg);
    if (pKeyInfo->Key == GUI_KEY_LEFT || pKeyInfo->Key == GUI_KEY_RIGHT) 
		{
	//		WM_SendMessageNoPara(WM_GetClientWindow(pMsg->hWin),WM_LIMIT);
			//WM_SendMessageNoPara(pMsg->hWin,WM_LIMIT);
			Message.MsgId = WM_LIMIT;
			Message.Data.v = 0;
		}
			if (pKeyInfo->Key == GUI_KEY_UP || pKeyInfo->Key == GUI_KEY_DOWN) 
		{
			Message.MsgId = WM_LIMIT;
			Message.Data.v = 1;
		}
		WM_SendMessage(pMsg->hWin, &Message);
    break;
	case WM_LIMIT:
		EDIT_GetText(pMsg->hWin, acText, LEN_ITEM_TEXT);
		if(setflag)
		{
			EDIT_GetUserData(pMsg->hWin, &CellEditOrg, sizeof(CELL_EDIT_ORG));
			hList = WM_GetParent(pMsg->hWin);
			if(strncmp(acText,"SetV",4)==0)
			{
				EDIT_SetText(pMsg->hWin,"Loop");
				LISTVIEW_SetItemText(hList,CellEditOrg.Col+1,CellEditOrg.Row,"");
				LISTVIEW_SetItemText(hList,CellEditOrg.Col+2,CellEditOrg.Row,"");
				LISTVIEW_SetItemText(hList,CellEditOrg.Col+3,CellEditOrg.Row,"0");
				LISTVIEW_SetItemText(hList,CellEditOrg.Col+4,CellEditOrg.Row,"0");
			}
			else{
				EDIT_SetText(pMsg->hWin,"SetV");
				LISTVIEW_SetItemText(hList,CellEditOrg.Col+1,CellEditOrg.Row,"0.00");
				LISTVIEW_SetItemText(hList,CellEditOrg.Col+2,CellEditOrg.Row,"0");
				LISTVIEW_SetItemText(hList,CellEditOrg.Col+3,CellEditOrg.Row,"");
				LISTVIEW_SetItemText(hList,CellEditOrg.Col+4,CellEditOrg.Row,"");
			}
		}
		else{
//			mylen = strlen(acText);
//			NCode = pMsg->Data.v;
//			if(NCode)
//			{
//				EDIT_GetUserData(pMsg->hWin, &CellEditOrg, sizeof(CELL_EDIT_ORG));
//				if(CellEditOrg.Col == 2)
//				{
//					posflag = 1;
//					for(position=0;position<mylen & acText[position]!='.';position++);
//				}
//				for(i=0;i<mylen;i++)
//				{
//					if(acText[i]<2)
//						acText[i] = 0;
//					if((acText[0]==44)||(acText[0]==46))
//					{
//						acText[0] = 45;
//					}
//					if(posflag && ((acText[i]==45)||(acText[i]==47)))
//					{
//						if(position<mylen)
//						{
//							if(position==i)
//								acText[i] = 46;
//						}
//						else
//							acText[i] = 46;
//					}
//					if((acText[i]==45)||(acText[i]==46))
//						continue;
//					if((acText[i]<48)&&(acText[i]>10))
//						acText[i] = 48;
//					if(acText[i]>57)
//						acText[i] = 57;
//				}
//				posflag = 0;
//			}
//			pos=EDIT_GetCursorCharPos(pMsg->hWin);
//			EDIT_SetText(pMsg->hWin, acText);
//			EDIT_SetSel(pMsg->hWin,pos,pos);
		}
		break;
  case WM_SET_FOCUS:
    if (pMsg->Data.v == 0) {
      WM_DeleteWindow(pMsg->hWin);
    } else {
      EDIT_Callback(pMsg);
    }
    break;
  case WM_DELETE:
    EDIT_GetUserData(pMsg->hWin, &CellEditOrg, sizeof(CELL_EDIT_ORG));
    hList = WM_GetParent(pMsg->hWin);
    EDIT_GetText(pMsg->hWin, acText, LEN_ITEM_TEXT);
    LISTVIEW_SetItemTextSorted(hList, CellEditOrg.Col, CellEditOrg.Row, acText);
		setflag = 0;
    break;
  default:
    EDIT_Callback(pMsg);
  }
}

static void cmpChNum(WM_HWIN hItem)
{
	char i;
	
	for(i=0;i<37;i++)
		DROPDOWN_SetItemDisabled(hItem, i,1);
	
	if(cfg_para.cfg_ch.cfg_ch1.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 0,0);
	if(cfg_para.cfg_ch.cfg_ch2.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 1,0);
	if(cfg_para.cfg_ch.cfg_ch3.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 2,0);
	if(cfg_para.cfg_ch.cfg_ch4.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 3,0);
	if(cfg_para.cfg_ch.cfg_ch5.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 4,0);
	if(cfg_para.cfg_ch.cfg_ch6.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 5,0);
	if(cfg_para.cfg_ch.cfg_ch7.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 6,0);
	if(cfg_para.cfg_ch.cfg_ch8.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 7,0);
	if(cfg_para.cfg_ch.cfg_ch9.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 8,0);
	if(cfg_para.cfg_ch.cfg_ch10.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 9,0);
	
	if(cfg_para.cfg_ch.cfg_ch11.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 10,0);
	if(cfg_para.cfg_ch.cfg_ch12.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 11,0);
	if(cfg_para.cfg_ch.cfg_ch13.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 12,0);
	if(cfg_para.cfg_ch.cfg_ch14.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 13,0);
	if(cfg_para.cfg_ch.cfg_ch15.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 14,0);
	if(cfg_para.cfg_ch.cfg_ch16.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 15,0);
	if(cfg_para.cfg_ch.cfg_ch17.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 16,0);
	if(cfg_para.cfg_ch.cfg_ch18.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 17,0);
	if(cfg_para.cfg_ch.cfg_ch19.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 18,0);
	if(cfg_para.cfg_ch.cfg_ch20.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 19,0);
	
	
	if(cfg_para.cfg_ch.cfg_ch21.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 20,0);
	if(cfg_para.cfg_ch.cfg_ch22.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 21,0);
	if(cfg_para.cfg_ch.cfg_ch23.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 22,0);
	if(cfg_para.cfg_ch.cfg_ch24.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 23,0);
	if(cfg_para.cfg_ch.cfg_ch25.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 24,0);
	if(cfg_para.cfg_ch.cfg_ch26.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 25,0);
	if(cfg_para.cfg_ch.cfg_ch27.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 26,0);
	if(cfg_para.cfg_ch.cfg_ch28.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 27,0);
	if(cfg_para.cfg_ch.cfg_ch29.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 28,0);
	if(cfg_para.cfg_ch.cfg_ch30.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 29,0);
	
	if(cfg_para.cfg_ch.cfg_ch31.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 30,0);
	if(cfg_para.cfg_ch.cfg_ch32.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 31,0);
	if(cfg_para.cfg_ch.cfg_ch33.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 32,0);
	if(cfg_para.cfg_ch.cfg_ch34.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 33,0);
	if(cfg_para.cfg_ch.cfg_ch35.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 34,0);
	if(cfg_para.cfg_ch.cfg_ch36.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 35,0);
	if(cfg_para.cfg_ch.cfg_ch37.cfg_data.ch_data1 != 0)
		DROPDOWN_SetItemDisabled(hItem, 36,0);
}

void InitDialog(WM_MESSAGE * pMsg)
{	
	WM_HWIN hItem;
	char i;
	
	//
	// Initialization of 'Window'
	//
	WINDOW_SetBkColor(hItem, 0x00D8E9EC);
	//
	// Initialization of 'Text'
	//
	{
	hItem = WM_GetDialogItem(hItem, ID_TEXT_0);
	TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
//		TEXT_SetFont(hItem, &XBF_Font32);
	TEXT_SetFont(hItem, &GUI_Fontyahei36);
	TEXT_SetText(hItem, "CELL信号发生器");
	TEXT_SetTextColor(hItem, 0x00000000);
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
//		TEXT_SetFont(hItem, &XBF_Font24);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, &GUI_Fontkai24);
	TEXT_SetText(hItem, "可配置工程:");
//	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);
//	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
//	TEXT_SetFont(hItem, &GUI_Fontkai24);
//	TEXT_SetText(hItem, "当前图片:");
////	memset(buf,0,sizeof(buf));
////	strncpy(buf,cfgname[0],strlen(cfgname[0])-4);
//	sprintf(file_name, "%s00", buf);
//	ReadFileData(FS_VOLUME_SD,file_name,&cfg_para,sizeof(cfg_para));
//	picture_num=0;
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, &GUI_Fontkai24);
	TEXT_SetText(hItem, "背光电压:");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, &GUI_Fontkai24);
	TEXT_SetText(hItem, "背光电流:");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5);
	TEXT_SetFont(hItem, &GUI_Fontkai24);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetText(hItem, "设置电压:");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_6);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, &GUI_Fontkai24);
	TEXT_SetText(hItem, "设置电流:");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_7);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, &GUI_Fontkai24);
	TEXT_SetText(hItem, "设置总时间:");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_8);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, &GUI_Fontkai24);
	TEXT_SetText(hItem, "设置图片:");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_9);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, &GUI_Fontkai24);
	TEXT_SetText(hItem, "设置通道:");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_10);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_20_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_11);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_20_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_12);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_20_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_13);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_20_1);
	TEXT_SetText(hItem, "V");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_14);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "mA");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_15);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "us");
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_16);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "CH0~CH3");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_17);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "CH4~CH7");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_18);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "CH8~CH11");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_19);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "CH12~CH15");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_20);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "CH16~CH19");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_21);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "CH20~CH23");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_22);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "H");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_23);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "L");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_24);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "H");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_25);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "L");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_26);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "V");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_27);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "V");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_28);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "V");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_29);
	TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
	TEXT_SetFont(hItem, GUI_FONT_16B_1);
	TEXT_SetText(hItem, "V");
	}
	//
	// Initialization of 'Edit'
	//
	{
//	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
//	EDIT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
//	EDIT_SetFont(hItem, GUI_FONT_20_1);
//	EDIT_SetFloatMode(hItem,(float)cfg_para.voltage/100,0,40,2,2);		
//	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_1);
//	EDIT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
//	EDIT_SetFont(hItem, GUI_FONT_20_1);
//	EDIT_SetFloatMode(hItem,(float)cfg_para.current/100,0,300,2,2);	
//	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_2);
//	EDIT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
//	EDIT_SetFont(hItem, GUI_FONT_20_1);
//	EDIT_SetFloatMode(hItem,cfg_para.totalTime,0,10000,0,2);
	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_3);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_4);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_5);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_6);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_7);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_8);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_9);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);	
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_10);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_11);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_12);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_13);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
	hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_14);
	EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
	EDIT_SetFont(hItem, GUI_FONT_16B_1);
//	refreshZU(pMsg);
	}
	//
	// Initialization of 'Dropdown'
	//
	{
//	hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
//	DROPDOWN_SetFont(hItem, &GUI_Fontkai24);
//	DROPDOWN_SetAutoScroll(hItem, 1); 
////		DROPDOWN_AddString(hItem, "工程1");
////		DROPDOWN_AddString(hItem, "工程2");
////		DROPDOWN_AddString(hItem, "工程3");
////	len = max_pro_num;
//	max_pro_num = ViewRootDir(FS_VOLUME_SD,proname);
//	if(read_flag)
//	{
////		len = 0;
//		for(i=0;i<max_pro_num;i++)
//		{
//			if(strncmp(proname[i],proname[i+1],4))
//			{
////				strncpy(cfgname[len],proname[i],strlen(proname[i])-6);
////				strcat(cfgname[len++],".txt");
//			}
//		}
//	}
////	for(i=0;i<len;i++)
////	{
////		sprintf(buf, "%s", "工程");
////		sprintf(buf1, "%d%s", i+1,":");			
////		strcat(buf,buf1);
////		strcpy(buf2,cfgname[i]);
////		strcat(buf,buf2);
////		DROPDOWN_AddString(hItem, buf);	
////	}
//	if(i>6)
//		DROPDOWN_SetListHeight(hItem, 24*6);
//	else
//		DROPDOWN_SetListHeight(hItem, 24*i); 
////		DROPDOWN_SetScrollbarWidth(hItem, 2);
//		
//	hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_1);
//	DROPDOWN_SetFont(hItem, GUI_FONT_20_1);
//	DROPDOWN_SetAutoScroll(hItem, 1); 
//	for(i=0;i<max_pro_num;i++)
//	{
//		if(!strncmp(cfgname[0],proname[i],strlen(proname[i])-6))
//		{
//			memset(file_name,0,sizeof(file_name));
//			strncpy(file_name,proname[i],strlen(proname[i])-4);
//			ReadFileData(FS_VOLUME_SD,file_name,&picArray,sizeof(CONFIG_PIC));
////			memset(buf,0,sizeof(buf));
////			sprintf(buf, "%d:%s", picArray.picNum,picArray.picName);		
////			DROPDOWN_AddString(hItem, buf);
//		}
//	}
//	memset(file_name,0,sizeof(file_name));
////	strncpy(buf,cfgname[project_number],strlen(cfgname[project_number])-4);
////	sprintf(file_name,"%s00",buf);
//	ReadFileData(FS_VOLUME_SD,file_name,&picArray,sizeof(CONFIG_PIC));
//	DROPDOWN_SetListHeight(hItem, 20*5);
//	change_ch = 1;
//	hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_2);
//	DROPDOWN_SetFont(hItem, GUI_FONT_20_1);
//	DROPDOWN_SetAutoScroll(hItem, 1);
//	DROPDOWN_SetListHeight(hItem, 20*5);
//		for(i=0;i<37;i++)
//		{
//			memset(buf,0,sizeof(buf));
//			sprintf(buf, "%s%d:", "CH",i);
//			DROPDOWN_AddString(hItem, buf);
//			DROPDOWN_SetItemDisabled(hItem, i,1);
//		}
	}
	//
	// Initialization of 'Listview'
	//
	{
	hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
	LISTVIEW_SetFont(hItem, GUI_FONT_16B_1);
	WM_SetCallback(hItem, _cbList);    
//    LISTVIEW_AddColumn(hItem, 55, "Address", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 66, "Command", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 68, "Voltage(V)", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 60, "Time(us)", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 86, "Loop Address", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 88, "RepeatTime", GUI_TA_HCENTER | GUI_TA_VCENTER);
	LISTVIEW_AddColumn(hItem, 50, "地址", GUI_TA_HCENTER | GUI_TA_VCENTER);
	LISTVIEW_AddColumn(hItem, 60, "命令", GUI_TA_HCENTER | GUI_TA_VCENTER);
	LISTVIEW_AddColumn(hItem, 65, "电压(V)", GUI_TA_HCENTER | GUI_TA_VCENTER);
	LISTVIEW_AddColumn(hItem, 80, "时间(us)", GUI_TA_HCENTER | GUI_TA_VCENTER);
	LISTVIEW_AddColumn(hItem, 80, "重复地址", GUI_TA_HCENTER | GUI_TA_VCENTER);
	LISTVIEW_AddColumn(hItem, 88, "重复次数", GUI_TA_HCENTER | GUI_TA_VCENTER);
	LISTVIEW_SetGridVis(hItem, 1);
	LISTVIEW_SetRowHeight(hItem, 25);
HEADER_SetFont(LISTVIEW_GetHeader(hItem), &GUI_Fontsong16);
LISTVIEW_SetHeaderHeight(hItem, 35);
	LISTVIEW_EnableCellSelect(hItem, 1);
	LISTVIEW_SetAutoScrollV(hItem, 1);
addRow(hItem);
///*		LISTVIEW_GetItemText(hItem,1,i,acCommand,5);
//		if(!strcmp("SetV",acCommand)){
//			LISTVIEW_SetItemBkColor(hItem,4,i,0,0x808080);
//			LISTVIEW_SetItemBkColor(hItem,5,i,0,0x808080);
//		}else{
//			LISTVIEW_SetItemBkColor(hItem,2,i,0,0x808080);
//			LISTVIEW_SetItemBkColor(hItem,3,i,0,0x808080);
//		}*/
//    }
	}	
	//
	// 按钮控件设置
	//
	hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
	BUTTON_SetFont(hItem, &GUI_Fontkai24);
	BUTTON_SetText(hItem, "切图");
	hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
	BUTTON_SetFont(hItem, &GUI_Fontkai24);
	BUTTON_SetText(hItem, "保存");
}

/*********************************************************************
*
*       _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
	WM_HWIN hItem;
  WM_KEY_INFO    * pKeyInfo;
	int     NCode;
	int     Id;
	char buf[16]={0},buf1[16],buf2[16];
	u32 temp;
	float temp_f;
	uint8_t i,len=0;
  static WM_HWIN   hCellEdit = 0;
  CELL_EDIT_ORG    CellEditOrg;
  GUI_RECT         ItemRect;
  char             acItemText[LEN_ITEM_TEXT],acCommand[LEN_ITEM_TEXT];
  int     tmp;

	switch (pMsg->MsgId) {
	case WM_INIT_DIALOG:
//		InitDialog(pMsg);
	{
		//
		// Initialization of 'Window'
		//
		hItem = pMsg->hWin;
		WINDOW_SetBkColor(hItem, 0x00D8E9EC);		
		//
		// Initialization of 'Text'
		//
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
		TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
//		TEXT_SetFont(hItem, &XBF_Font32);
		TEXT_SetFont(hItem, &GUI_Fontyahei36);
		TEXT_SetText(hItem, "CELL信号发生器");
		TEXT_SetTextColor(hItem, 0x00000000);
		//
		// Initialization of 'Dropdown'
		//
		hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
		DROPDOWN_SetFont(hItem, &GUI_Fontkai24);
		DROPDOWN_SetAutoScroll(hItem, 1); 
//		DROPDOWN_AddString(hItem, "工程1");
//		DROPDOWN_AddString(hItem, "工程2");
//		DROPDOWN_AddString(hItem, "工程3");
		len = max_pro_num;
		max_pro_num = ViewRootDir(FS_VOLUME_SD,proname);
		if(read_flag)
		{
			len = 0;
			for(i=0;i<max_pro_num;i++)
			{
				if(strncmp(proname[i],proname[i+1],4))
				{
					strncpy(cfgname[len],proname[i],strlen(proname[i])-6);
					strcat(cfgname[len++],".txt");
				}
			}
		}
		for(i=0;i<len;i++)
		{
			sprintf(buf, "%s", "工程");
			sprintf(buf1, "%d%s", i+1,":");			
			strcat(buf,buf1);
			strcpy(buf2,cfgname[i]);
			strcat(buf,buf2);
			DROPDOWN_AddString(hItem, buf);	
		}
		if(i>6)
			DROPDOWN_SetListHeight(hItem, 24*6);
		else
			DROPDOWN_SetListHeight(hItem, 24*i); 
//		DROPDOWN_SetScrollbarWidth(hItem, 2);
	}
	{
		//
		// Initialization of 'Text'
		//
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
//		TEXT_SetFont(hItem, &XBF_Font24);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetText(hItem, "可配置工程:");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetText(hItem, "当前图片:");
		memset(buf,0,sizeof(buf));
		strncpy(buf,cfgname[0],strlen(cfgname[0])-4);
		sprintf(file_name, "%s00", buf);
		ReadFileData(FS_VOLUME_SD,file_name,&cfg_para,sizeof(cfg_para));
		picture_num=0;
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetText(hItem, "背光电压:");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetText(hItem, "背光电流:");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetText(hItem, "设置电压:");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_6);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetText(hItem, "设置电流:");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_7);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetText(hItem, "设置总时间:");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_8);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetText(hItem, "设置图片:");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_9);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, &GUI_Fontkai24);
		TEXT_SetText(hItem, "设置通道:");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_10);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_20_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_11);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_20_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_12);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_20_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_13);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_20_1);
		TEXT_SetText(hItem, "V");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_14);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "mA");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_15);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "us");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
    EDIT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_20_1);
		EDIT_SetFloatMode(hItem,(float)cfg_para.voltage/100,0,40,2,2);		
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_1);
    EDIT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_20_1);
		EDIT_SetFloatMode(hItem,(float)cfg_para.current/100,0,300,2,2);	
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_2);
    EDIT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_20_1);
		EDIT_SetFloatMode(hItem,cfg_para.totalTime,0,10000,0,2);
	}
		
		{
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_16);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "CH0~CH3");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_17);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "CH4~CH7");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_18);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "CH8~CH11");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_19);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "CH12~CH15");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_20);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "CH16~CH19");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_21);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "CH20~CH23");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_22);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "H");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_23);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "L");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_24);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "H");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_25);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "L");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_26);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "V");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_27);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "V");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_28);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "V");
		hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_29);
		TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
		TEXT_SetFont(hItem, GUI_FONT_16B_1);
		TEXT_SetText(hItem, "V");
		}
		
		{
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_3);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);	
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_4);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_5);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);	
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_6);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_7);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_8);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_9);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);	
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_10);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_11);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_12);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_13);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_14);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
		EDIT_SetFont(hItem, GUI_FONT_16B_1);
		refreshZU(pMsg);
		}
	
	{		
		hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_1);
		DROPDOWN_SetFont(hItem, GUI_FONT_20_1);
		DROPDOWN_SetAutoScroll(hItem, 1); 
		for(i=0;i<max_pro_num;i++)
		{
			if(!strncmp(cfgname[0],proname[i],strlen(proname[i])-6))
			{
				memset(file_name,0,sizeof(file_name));
				strncpy(file_name,proname[i],strlen(proname[i])-4);
				ReadFileData(FS_VOLUME_SD,file_name,&picArray,sizeof(CONFIG_PIC));
				memset(buf,0,sizeof(buf));
				sprintf(buf, "%d:%s", picArray.picNum,picArray.picName);		
				DROPDOWN_AddString(hItem, buf);
			}
		}
		memset(file_name,0,sizeof(file_name));
		strncpy(buf,cfgname[project_number],strlen(cfgname[project_number])-4);
		sprintf(file_name,"%s00",buf);
		ReadFileData(FS_VOLUME_SD,file_name,&picArray,sizeof(CONFIG_PIC));
		DROPDOWN_SetListHeight(hItem, 20*5);
		change_ch = 1;
		hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_2);
		DROPDOWN_SetFont(hItem, GUI_FONT_20_1);
		DROPDOWN_SetAutoScroll(hItem, 1);
		DROPDOWN_SetListHeight(hItem, 20*5);
		for(i=0;i<37;i++)
		{
			memset(buf,0,sizeof(buf));
			sprintf(buf, "%s%d:", "CH",i);
			DROPDOWN_AddString(hItem, buf);
			DROPDOWN_SetItemDisabled(hItem, i,1);
		}
	}	
    //
    // Initialization of 'Listview'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
    LISTVIEW_SetFont(hItem, GUI_FONT_16B_1);
    WM_SetCallback(hItem, _cbList);    
//    LISTVIEW_AddColumn(hItem, 55, "Address", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 66, "Command", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 68, "Voltage(V)", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 60, "Time(us)", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 86, "Loop Address", GUI_TA_HCENTER | GUI_TA_VCENTER);
//    LISTVIEW_AddColumn(hItem, 88, "RepeatTime", GUI_TA_HCENTER | GUI_TA_VCENTER);
    LISTVIEW_AddColumn(hItem, 50, "地址", GUI_TA_HCENTER | GUI_TA_VCENTER);
    LISTVIEW_AddColumn(hItem, 60, "命令", GUI_TA_HCENTER | GUI_TA_VCENTER);
    LISTVIEW_AddColumn(hItem, 65, "电压(V)", GUI_TA_HCENTER | GUI_TA_VCENTER);
    LISTVIEW_AddColumn(hItem, 80, "时间(us)", GUI_TA_HCENTER | GUI_TA_VCENTER);
    LISTVIEW_AddColumn(hItem, 80, "重复地址", GUI_TA_HCENTER | GUI_TA_VCENTER);
    LISTVIEW_AddColumn(hItem, 88, "重复次数", GUI_TA_HCENTER | GUI_TA_VCENTER);
    LISTVIEW_SetGridVis(hItem, 1);
    LISTVIEW_SetRowHeight(hItem, 25);
	HEADER_SetFont(LISTVIEW_GetHeader(hItem), &GUI_Fontsong16);
	LISTVIEW_SetHeaderHeight(hItem, 35);
    LISTVIEW_EnableCellSelect(hItem, 1);
    LISTVIEW_SetAutoScrollV(hItem, 1);
	addRow(hItem);
///*		LISTVIEW_GetItemText(hItem,1,i,acCommand,5);
//		if(!strcmp("SetV",acCommand)){
//			LISTVIEW_SetItemBkColor(hItem,4,i,0,0x808080);
//			LISTVIEW_SetItemBkColor(hItem,5,i,0,0x808080);
//		}else{
//			LISTVIEW_SetItemBkColor(hItem,2,i,0,0x808080);
//			LISTVIEW_SetItemBkColor(hItem,3,i,0,0x808080);
//		}*/
//    }	
    
    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
		BUTTON_SetFont(hItem, &GUI_Fontkai24);
    BUTTON_SetText(hItem, "切图");
    hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
		BUTTON_SetFont(hItem, &GUI_Fontkai24);
    BUTTON_SetText(hItem, "保存");
		break;
		
	case WM_PAINT:
	{
		GUI_SetColor(0x00FFFFFF);//RGB(172,168,153)
		GUI_DrawHLine(58,10,790);
		GUI_SetColor(0x00ACA899);//RGB(172,168,153)
		GUI_DrawHLine(57, 9, 789);		

		GUI_SetColor(0x00D8E9EC);//RGB(236,233,216)
		GUI_DrawHLine(58, 236, 541);
		GUI_DrawHLine(57, 236, 541);
//		GUI_DrawHLine(120, 126, 227);
//		GUI_DrawHLine(119, 126, 227);

		GUI_SetColor(GUI_BLACK); 	

		GUI_DrawBitmap(&bmLogo, 650, 420);
	}
		break;
			
	case WM_TIMER:
		if(WM_GetTimerId(pMsg->Data.v) == ID_Timer1)
		{
			hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
			if(WM_HasFocus(hItem))
				pic_play = 1;
//			hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
			hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_1);
			switch(change_pic)
			{
				case 1:
					for(i=cfg_para.picMaxN;i>0;i--)
						DROPDOWN_DeleteItem(hItem,i);
					change_pic = 2;
					break;
				case 2:
					for(i=0;i<max_pro_num;i++)
					{
						if(!strncmp(cfgname[project_number],proname[i],strlen(proname[i])-6))
						{
							memset(file_name,0,sizeof(file_name));
							strncpy(file_name,proname[i],strlen(proname[i])-4);
							ReadFileData(FS_VOLUME_SD,file_name,&picArray,sizeof(CONFIG_PIC));
							memset(buf,0,sizeof(buf));
							sprintf(buf, "%d:%s", picArray.picNum,picArray.picName);
//								DROPDOWN_AddString(hItem, buf);
							DROPDOWN_InsertString(hItem, buf,picArray.picNum);
						}
					}
					DROPDOWN_DeleteItem(hItem,picArray.picNum+1);
					DROPDOWN_SetSel(hItem,0);
					change_pic = 0;
					memset(file_name,0,sizeof(file_name));
					strncpy(buf,cfgname[project_number],strlen(cfgname[project_number])-4);
					sprintf(file_name,"%s00",buf);
					ReadFileData(FS_VOLUME_SD,file_name,&picArray,sizeof(CONFIG_PIC));
					break;
			}
			hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_2);
			if(change_ch)
			{
				change_ch = 0;
				cmpChNum(hItem);
				channel_num = DROPDOWN_GetSel(hItem);
				change_data = 1;
				refreshZU(pMsg);
			}
			hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
			switch(change_data)
			{
				case 1:
					rows = LISTVIEW_GetNumRows(hItem);
					for(i=rows;i>0;i--)
						LISTVIEW_DeleteRow(hItem,i-1);				
					change_data = 2;
					break;
				case 2:
					addRow(hItem);
					change_data = 0;
					break;
			}

			hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_10);
			sprintf(buf, "%d--", picture_num);
			strcpy(buf1,picArray.picName);					
			strcat(buf,buf1);
			TEXT_SetText(hItem, buf);
			hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_11);			
//			temp=((unsigned int)BL_data[2]<<8)|((unsigned int)BL_data[3]);    //BL 	I                                                                                                                                 
			temp_f=(2.979*temp/10240-0.5)*1000;    //BL  I
			if(temp_f<0)
				temp_f=0;
			sprintf(buf, "%6.1f", temp_f);                                                                                                                                                          
			strcat(buf," V");     
			TEXT_SetText(hItem, buf);
			hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_12);			
//			temp=((unsigned int)BL_data[2]<<8)|((unsigned int)BL_data[3]);    //BL 	I                                                                                                                                 
			temp_f=(2.979*temp/10240-0.5)*1000;    //BL  I
			if(temp_f<0)
				temp_f=0;
			sprintf(buf, "%6.1f", temp_f);                                                                                                                                                          
			strcat(buf," mA");     
			TEXT_SetText(hItem, buf);
//			hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_11);
//			if(BL_data[4])
//				TEXT_SetText(hItem, "CC");
//			else
//				TEXT_SetText(hItem, "CV");
		
		}
		/* 重启定时器 */
		WM_RestartTimer(pMsg->Data.v, 400);
		break;
  case WM_KEY:
    hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
    if (pMsg->hWinSrc == hItem) {
      pKeyInfo = (WM_KEY_INFO *)pMsg->Data.p;
			
			if(WM_HasFocus(hItem) && (pKeyInfo->Key == GUI_KEY_TAB)){
				tmp=LISTVIEW_GetSel(hItem);
				if(tmp>0){
					LISTVIEW_SetSel(hItem,LISTVIEW_GetSel(hItem));
					LISTVIEW_SetSelCol(hItem,LISTVIEW_GetSelCol(hItem));
				}else{
					LISTVIEW_SetSel(hItem,0);
					LISTVIEW_SetSelCol(hItem,2);
				}
			}
      if (pKeyInfo->PressedCnt == 0) {
        if (pKeyInfo->Key == GUI_KEY_ENTER) {
          if (hCellEdit == 0) {
            CellEditOrg.Row = LISTVIEW_GetSel(hItem);
            CellEditOrg.Col = LISTVIEW_GetSelCol(hItem);
						
						LISTVIEW_GetItemText(hItem,1,CellEditOrg.Row,acCommand,LEN_ITEM_TEXT);
						if(CellEditOrg.Col == 0 )
							break;
						if(CellEditOrg.Col == 1)
						{
							if(CellEditOrg.Row == 0)
								break;
							else
								setflag = 1;
						}
						if(!strcmp("SetV",acCommand)){
							if(CellEditOrg.Col == 4 || CellEditOrg.Col == 5)
								break;
						}else{
							if(CellEditOrg.Col == 2 || CellEditOrg.Col == 3)
								break;
						}
						
            LISTVIEW_GetItemRect(hItem, CellEditOrg.Col, CellEditOrg.Row, &ItemRect);
            LISTVIEW_GetItemTextSorted(hItem, CellEditOrg.Col, CellEditOrg.Row, acItemText, LEN_ITEM_TEXT);
            hCellEdit = EDIT_CreateUser(ItemRect.x0, ItemRect.y0, ItemRect.x1 - ItemRect.x0 + 2, ItemRect.y1 - ItemRect.y0 + 1, hItem, WM_CF_SHOW, 0, 0, LEN_ITEM_TEXT, sizeof(CELL_EDIT_ORG));
            EDIT_SetUserData(hCellEdit, &CellEditOrg, sizeof(CELL_EDIT_ORG));
            WIDGET_SetEffect(hCellEdit, &WIDGET_Effect_Simple);
            WM_SetCallback(hCellEdit, _cbCellEdit);
            WM_SetFocus(hCellEdit);
						if(CellEditOrg.Col==1)
							EDIT_SetText(hCellEdit, acItemText);
						else if(CellEditOrg.Col==2){
							if(channel_num<24)
								EDIT_SetFloatMode(hCellEdit,atoi(acItemText),0,1,0,2);
							else
								EDIT_SetFloatMode(hCellEdit,atof(acItemText),-31,31,2,2);
						}
						else
							EDIT_SetFloatMode(hCellEdit,atoi(acItemText),0,1000,0,2);
          }
        }
      }
    }
    break;
				
	case WM_NOTIFY_PARENT:
		Id = WM_GetId(pMsg->hWinSrc);
		NCode = pMsg->Data.v;
    switch (NCode) {
    case WM_NOTIFICATION_CHILD_DELETED:
      if (pMsg->hWinSrc == hCellEdit) {
        hCellEdit = 0;
      }
      break;
		}
	
		switch (Id) {
		case ID_DROPDOWN_0: // Notifications sent by 'Dropdown'
			switch (NCode) {
			case WM_NOTIFICATION_CLICKED:
				break;
			case WM_NOTIFICATION_RELEASED:
				break;
			case WM_NOTIFICATION_SEL_CHANGED:
				hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
				project_number = DROPDOWN_GetSel(hItem);
//				memset(buf,0,sizeof(buf));
//				memset(file_name,0,sizeof(file_name));
//				strncpy(buf,cfgname[project_number],strlen(cfgname[project_number])-4);
//				sprintf(file_name, "%s00", buf);
//				ReadFileData(FS_VOLUME_SD,file_name,&cfg_para,sizeof(cfg_para));
//				file_flag = 1;
				picture_num=0;
				change_pic = 1;
				hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_1);
				DROPDOWN_InsertString(hItem, "",0);
				break;
			}
			break;
		case ID_DROPDOWN_1: // Notifications sent by 'Dropdown'
			switch (NCode) {
			case WM_NOTIFICATION_CLICKED:
				break;
			case WM_NOTIFICATION_RELEASED:
				break;
			case WM_NOTIFICATION_SEL_CHANGED:
				hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_1);
				picture_num = DROPDOWN_GetSel(hItem);
				memset(buf,0,sizeof(buf));
				memset(file_name,0,sizeof(file_name));
				strncpy(buf,cfgname[project_number],strlen(cfgname[project_number])-4);			
				sprintf(file_name, "%s%02d", buf,picture_num);
//				ReadFileData(FS_VOLUME_SD,file_name,&cfg_para,sizeof(cfg_para));
				file_flag = 1;
				change_ch = 1;
				break;
			}
			break;
		case ID_DROPDOWN_2: // Notifications sent by 'Dropdown'
			switch (NCode) {
			case WM_NOTIFICATION_CLICKED:
				break;
			case WM_NOTIFICATION_RELEASED:
				break;
			case WM_NOTIFICATION_SEL_CHANGED:
				hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_2);
				channel_num = DROPDOWN_GetSel(hItem);
//				hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
//				rows = LISTVIEW_GetNumRows(hItem);				
//				for(i=rows;i>0;i--)
//					LISTVIEW_DeleteRow(hItem,i-1);				
//				addRow(hItem);
				change_data = 1;
				break;
			}
			break;
		case ID_BUTTON_0: // Notifications sent by 'Button'
			switch(NCode) {
			case WM_NOTIFICATION_CLICKED:
			// USER START (Optionally insert code for reacting on notification message)
			// USER END
			break;
			case WM_NOTIFICATION_RELEASED:
			// USER START (Optionally insert code for reacting on notification message)
			memset(file_name,0,sizeof(file_name));
			strncpy(file_name,cfgname[project_number],strlen(cfgname[project_number])-4);
			file_flag = 2;
			// USER END	
			break;
			// USER START (Optionally insert additional code for further notification handling)
			// USER END
			}
			break;
		case ID_BUTTON_1: // Notifications sent by 'Button'
			switch(NCode) {
			case WM_NOTIFICATION_CLICKED:
			// USER START (Optionally insert code for reacting on notification message)
			// USER END
			break;
			case WM_NOTIFICATION_RELEASED:
			// USER START (Optionally insert code for reacting on notification message)
			saveZU(pMsg);
			hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
			saveData(hItem);
			CreateNewFile(project_number,picture_num);
			// USER END	
			break;
			// USER START (Optionally insert additional code for further notification handling)
			// USER END
			}
			break;
		}
		break;
	default:
		WM_DefaultProc(pMsg);
		break;
	}
}

WM_HWIN CreateWindow(void) 
{
	WM_HWIN hWin;

	hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
	return hWin;
}


/*
*********************************************************************************************************
*	函 数 名: MainTask
*	功能说明: GUI主函数
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void MainTask(void) 
{
		WM_HWIN hWinMain;
	
	/* 初始化 */
	GUI_Init();

	/* 使能UTF-8编码 */     
	GUI_UC_SetEncodeUTF8(); 
		
	GUI_SetBkColor(GUI_BLACK);
	GUI_SetColor(GUI_WHITE);	
	
	GUI_SetFont(&GUI_Fontbrush48);	
	GUI_DispStringAt("CELL", (LCD_GetXSize() - 7*48)/2 , (LCD_GetYSize() - 48)/2);
	GUI_SetFont(&GUI_Fontxingshu48);
	GUI_DispStringAt("信号发生器", (LCD_GetXSize() - 2*48)/2 , (LCD_GetYSize() - 48)/2);

	GUI_SetFont(&GUI_Fontyahei30);
	GUI_DispStringAt("帆声图像", (LCD_GetXSize() - 4*30)/2+10 , LCD_GetYSize() - 30 - 25);
	GUI_SetFont(GUI_FONT_20_1);
	GUI_DispStringAt("@Freesense Image", (LCD_GetXSize() - 17*10)/ 2 , LCD_GetYSize() - 20);
	
	GUI_DrawBitmap(&bmLogoCell, (LCD_GetXSize() - bmLogoCell .XSize)/2 , LCD_GetYSize()/2 - 48 - 80);
	
	GUI_SetFont(&GUI_Fontyahei36);
  if(File_Init())
	{		
		GUI_SetColor(GUI_LIGHTBLUE);
		GUI_DispStringAt("正在解析配置文件……", (LCD_GetXSize() - 8*36)/2 + 8, (LCD_GetYSize()/2 + 36 + 10));	
		vTaskPrioritySet(NULL, 6);
		DemoFatFS();
		vTaskPrioritySet(NULL, 1);
	}
	else
	{
		GUI_SetColor(GUI_RED);
		GUI_DispStringAt("没有找到U盘或SD卡！", (LCD_GetXSize() - 9*36 + 18)/2 , LCD_GetYSize()/2 + 36 + 10);
		read_flag = 1;

		GUI_Delay(1000);
	}
	 
	/*
	 关于多缓冲和窗口内存设备的设置说明
	   1. 使能多缓冲是调用的如下函数，用户要在LCDConf_Lin_Template.c文件中配置了多缓冲，调用此函数才有效：
		  WM_MULTIBUF_Enable(1);
	   2. 窗口使能使用内存设备是调用函数：WM_SetCreateFlags(WM_CF_MEMDEV);
	   3. 如果emWin的配置多缓冲和窗口内存设备都支持，二选一即可，且务必优先选择使用多缓冲，实际使用
		  STM32F429BIT6 + 32位SDRAM + RGB565/RGB888平台测试，多缓冲可以有效的降低窗口移动或者滑动时的撕裂
		  感，并有效的提高流畅性，通过使能窗口使用内存设备是做不到的。
	   4. 所有emWin例子默认是开启三缓冲。
	*/
	WM_MULTIBUF_Enable(1);
	
	/*
       触摸校准函数默认是注释掉的，电阻屏需要校准，电容屏无需校准。如果用户需要校准电阻屏的话，执行
	   此函数即可，会将触摸校准参数保存到EEPROM里面，以后系统上电会自动从EEPROM里面加载。
	*/
    //TOUCH_Calibration();
	
	/* 将字库从SD卡中加载到SPI FLASH里面，加载一次即可，以后使用注释掉此函数 */
//	LoadFontLib();
	
//	/* 创建XBF字体 */
//    GUI_SetXBF();
	
	/* 调用此函数会自动的刷新桌面窗口 */
	WM_SetDesktopColor(GUI_BLUE); 

	/* 创建对话框 */
//	hWinMain=GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbDialog, 0, 0, 0);
	hWinMain=CreateWindow();
	
	WM_CreateTimer(WM_GetClientWindow(hWinMain), /* 接受信息的窗口的句柄 */
				   ID_Timer1, 	         /* 用户定义的Id。如果不对同一窗口使用多个定时器，此值可以设置为零。ID_TimerGraph */
				   10,                       /* 周期，此周期过后指定窗口应收到消息*/
				   0);	                     /* 留待将来使用，应为0 */
	
	while(1) 
	{
//		char acText[3] = {0};
		
		GUI_Delay(20);
		
//		Value = (Value + 1) % 100;
//		acText[0] = '0' + Value / 10;
//		acText[1] = '0' + Value % 10;
//		hDlg = WM_GetClientWindow(hWinMain);
//		hText = WM_GetDialogItem(hDlg, ID_TEXT_6);
//		TEXT_SetText(hText, acText);
	}
}

/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/
